欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 04_01 _Linux用户管理命令详解 有大用

/etc/passwd:

用户名:密码:UID:GID:注释:家目录:默认SHELL

/etc/shadow:

用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间

useradd [options] USERNAME

 -u UID 尚未使用 且>=500

 -g GID 或组名称 (基本组) (无论基本组,还是附加组,这个组必须存在)

 -G  GID, ......(额外组或附加组)(组必须事先存在) (不限定一个)(多个,彼此之间用逗号隔开即可)

 -c "COMMENT" (中间有空格,用双引号引起来)  指定注释

 -d /path/to/directory   指定家目录路径

 -s  指定 SHELL 路径  (/bin/bash,或 /bin/tcsh或 .......)                 /etc/shells:指定了当前系统可用的安全 shell

 -m -k  创建家目录且把默认配置文件复制过来 (一般两个一起使用)强制为用户创建家目录 (/etc/skel 骨架文件(里面包含配置文件)复制过来)

 -M 不创建家目录 即使/etc/login.defs指定了设置家目录为是

 -r 给系统创建一个系统用户 (id号为 1-499之间)(会自动在1-499之间找一个id) (通常不能登录系统 而且没有家目录,这是它的自动属性,通常都是单独使用的)


环境变理:

 PATH

 HISTORY

 SHELL  用来保存当前用户的默认shell




# useradd -u 1000 user1

useradd:UID 1000 并不唯一

# useradd -u 1003 user1

[root@ebs-22618 ~]# tail -1 /etc/passwd

user1:x:1003:1004::/home/user1:/bin/bash   (1003 是最大的 id 的下一个来使用的)


# useradd -u 1005 user2

[root@ebs-22618 ~]# tail -1 /etc/passwd

user2:x:1005:1005::/home/user2:/bin/bash

一般情况下 默认的组id 与  用户id 一致(可能不一致,因为这个组id 被占用)


# useradd -g hellosa user3

useradd:“hellosa”组不存在

# useradd -g mygroup user3  (mygroup 这个组已经存在)

# tail -1 /etc/passwd

user3:x:1006:1003::/home/user3:/bin/bash


# useradd -G mygroup user4

# !tail

tail -1 /etc/passwd

user4:x:1007:1007::/home/user4:/bin/bash

# tail /etc/group

image.png

# useradd -c "tom Blare" -d /home/blare user5

# tail -1 /etc/passwd

user5:x:1008:1008:tom Blare:/home/blare:/bin/bash


# useradd -s /sbin/nologin user6

# su - user6

This account is currently not available.


# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash


# useradd -s /bin/sh user7

# su - user7

-sh-4.1$ echo $SHELL

/bin/sh

$ exit

logout

# tail -1 /etc/passwd

user7:x:1010:1010::/home/user7:/bin/sh


# man useradd

# export LANG=EN

# man useradd

image.png

# ls -la /etc/skel/

总用量 24

drwxr-xr-x.  3 root root 4096 5月  11 2017 .

drwxr-xr-x. 73 root root 4096 3月  29 21:10 ..

-rw-r--r--.  1 root root   18 3月  23 2017 .bash_logout

-rw-r--r--.  1 root root  176 3月  23 2017 .bash_profile

-rw-r--r--.  1 root root  124 3月  23 2017 .bashrc

drwxr-xr-x.  3 root root 4096 2月  16 2014 public_html


# cat /etc/login.defs

image.png

image.pngimage.png


# useradd -M user8

# su - user8

su: 警告:无法切换到目录/home/user8: 没有那个文件或目录

$ pwd

/root



userdel:

 userdel [option] USERNAME

 //没有指定任何选项,用户的家目录不会被删除

 -r 同时删除家目录


修改用户账号属性

usermod   它与useradd的用法几乎是一样的

  -u UID

  -g GID  改基本组(组必须事先存在)

  -G GID 改附加组(它有副作用) (此前如果有附加组,此时就没了(没有了))

  -a -G 为用户追加新的附加组,而不是覆盖原有(原来)的附加组

  -c 指定注释信息

  -d 改家目录  如果原家目录有文件,那么那了后,原有的文件就无法访问了

  -d -m 这样原家目录下的文件就复制到新的家目录了

  -s 改用户的shell

  -l 改登录名

  -L 锁定用户账号

  -U 解锁账号



 chsh: 专门用来改用户的shell

 

 chfn:   修改用户的finger信息即 comment (注释)信息


 密码管理:

 passwd                 (普通用户只能使用passwd来改自己的密码)

 passwd [USERNAME]  (管理员可以修改其它用户的密码)

    --stdin  从标准输入读取密码

    -l 锁定用户账号

    -u 解锁用户账号

    -d 删除用户密码  删除用户密码,就无法登录了(用户没有密码是无法登录的,系统默认属性就是这样的,默认红帽系统上就是这样子的)


pwck

   报告一下用户账户中有没有存在隐患 


组管理:

 创建组: groupadd

  groupadd

        -g  指定 GID  (不指定的话就是 >500,且比最大的+1)

        -r  添加为系统组    (安装服务器的时候,经常用这个命令去创建系统组 , usesadd -r 创建系统用户)


groupmod 修改组的相关属性

    -g GID

    -n GRPNAME


groupdel  +组名  指定组名,删除一个组


gpasswd    +组名  给组设定密码


newgrp GRPNAME <--exit-->           newgrp 临时登录一个基本组,临时切换基本组,是一个登录属性

   


如果建一个用户的话(假设不需要组密码)

其实就是做到三个方面:

1)/etc/passwd  里面添加一行

2)/etc/group 里面添加一行

3)/etc/shadow 里面添加一行

添加用户的时候 其实不需要 useradd 命令,手动编辑这三个文件就可以了

 


chage  改变密码的终止时间

    -d: 最近一次的修改时间

    -E: 过期时间

    -I: 非活动时间

    -m:最短使用期限 将两次改变密码之间相距的最小天数设为“最小天数”

    -M:警告时间 将两次改变密码之间相距的最大天数设为“最大天数”





# man chage

image.png

image.png



id: 查看用户的账号属性信息

 -u

 -g

 -G

 -n


finger:  检索(查看)用户信息 (甚至可以远程检索) 用来检索用户信息的程序 手指的意思

 finger  USERNAME



# man id

image.png

# id --help

image.png


# id 

image.png

uid  gid 组(就是所属的所有组(包括基本组和附加组))

# id user1

image.png

# id -u user1

image.png

# id -g user1                     -g 表示基本组的id

image.png


# id -G user1                      -G 表示所有组(包括基本组和附加组)的id

image.png

# id -G

image.png

# id -n user1

image.png

# id -u -n user1

image.png

# id -g -n user1

image.png

# id -G -n user1

image.png

# id -Gn   显示所有组的组名 (G和n选项合并)

image.png


# man finger

image.png

# finger user1

image.png


# ls /home

image.png

# userdel user1

# ls /home

image.png


# userdel -r user2    //-r 表示同时删除家目录

# ls /home

image.png

# id user3

image.png

# usermod -u 1011 user3

# usermod -u 1012 user3

image.png


# id user3

image.png


# man usermod

image.png

# usermod --help


# finger user3

image.png

# chsh user3

image.png

image.png

# finger user3

image.png

# chfn user3

image.png

# finger user3

image.png


# tail /etc/passwd

image.png

# man passwd

image.png

# passwd --help

image.png

image.png

# echo "redhat"

# echo "redhat" | passwd --stdin user3  可以用脚本可以方便的建账号,改密码

image.png


# tail /etc/shadow

image.png

# passwd -d user3

# tail /etc/shadow

image.png


# pwck --help

image.png

# man pwck

image.png

# pwck

image.png


# man groupadd

image.png



# useradd -r apache111  #系统目录是不会有家目录,即使给它创建了家目录路径

# tail -1 /etc/passwd

image.png

# ls /home

image.png

# useradd -r -s /sbin/nologin apache222  #这样系统组连登录都不能


# groupadd -r ngix111

# tail -1 /etc/group

image.png



[root@ebs-22618 ~]# useradd hadoop

[root@ebs-22618 ~]# su - hadoop

[hadoop@ebs-22618 ~]$ cd /tmp

[hadoop@ebs-22618 tmp]$ touch a.hadoop

$ ls -l a.hadoop

image.png

$ id

uid=1013(hadoop) gid=1013(hadoop) 组=1013(hadoop)


$ man newgrp

image.png


$ newgrp mygroup   此时就会用到组密码

image.png

[hadoop@ebs-22618 tmp]$ exit

logout

[root@ebs-22618 ~]# gpasswd mygroup

正在修改 mygroup 组的密码

新密码:

请重新输入新密码:

[root@ebs-22618 ~]# su - hadoop

[hadoop@ebs-22618 ~]$ newgrp mygroup       如果本来有mygroup这个附加组那么切换基本组不需要密码

密码:

[hadoop@ebs-22618 ~]$  id                       切换基本组后,原来的基本组就变成了附加组 

uid=1013(hadoop) gid=1003(mygroup) 组=1003(mygroup),1013(hadoop)

[hadoop@ebs-22618 ~]$ touch b.hadoop

$ ls -l b.hadoop

image.png



$ exit     退出所切换的临时基本组

image.png

$ id

image.png


image.png



管道重定向:  > , < , >> , <<

普通分类: