这里写目录标题
查看用户信息 cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
u1:x:1000:1001::/home/u1:/bin/bash
ntp:x:38:38::/etc/ntp:/sbin/nologin
内容说明 :
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
用户名:
是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。
口令:
一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
用户标识号:UID
用户标识号(User ID),是一个整数,系统内部用它来标识用户。
0是系统管理员账号,1-999是系统保留账号,1000+即一般账号。useradd 命名默认生成UID=1000。
组标识号:GID
GID:用户组标识号(Group ID),是一个整数,系统内部用它来标识用户组。
注释性描述:
字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。
主目录:
也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。
登录Shell:
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。
查看用户密码:cat /etc/shadow
root:$6$KJuZoTT7wJ4qczT.$7ZYaSJ2aa5wnJjZ3UIHmrSO8Sc/J7Ud4SDN4iD4rVq.v.ZQFKGJzTWra3CLDFqj4KrOfivvHfmHdquB0U.vnG0::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::
lp:*:17632:0:99999:7:::
sync:*:17632:0:99999:7:::
shutdown:*:17632:0:99999:7:::
halt:*:17632:0:99999:7:::
mail:*:17632:0:99999:7:::
operator:*:17632:0:99999:7:::
games:*:17632:0:99999:7:::
ftp:*:17632:0:99999:7:::
nobody:*:17632:0:99999:7:::
systemd-network:!!:18378::::::
dbus:!!:18378::::::
polkitd:!!:18378::::::
sshd:!!:18378::::::
postfix:!!:18378::::::
u1:!!:18380:0:99999:7:::
ntp:!!:18382::::::
用户(user)影子口令文件,存放账户密码相关信息。该文件的权限必须设置为:400 或者600,即:Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件。
每行内容按:分隔。
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
登录名:
是与/etc/passwd文件中的登录名相一致的用户账号
口令:
存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。
6
6
6开头的,表明是用SHA-512加密的,
1
1
1 表明是用MD5加密的
2
2
2 是用Blowfish加密的
5
5
5 是用 SHA-256加密的。
最后一次修改时间:
表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。
最小时间间隔:
指的是两次修改口令之间所需的最小天数。
最大时间间隔:
指的是口令保持有效的最大天数。
警告时间:
字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
不活动时间:
表示的是用户没有登录活动但账号仍能保持有效的最大天数。
失效时间:
字段给出的是一个绝对的天数(1970年到现在的天数),如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
创建用户:useradd
命令格式:
useradd [选项] 使用者账号名
命令功能:
用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。
选项和参数:
-u UID: 直接指定一个特定的 UID 给这个账号;
-g 初始群组名:该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。
-G 附加群组名:后面接的组名则是这个账号还可以加入的附加群组。这个选项与参数会修改 /etc/group 内的相关资料。
-M :强制!不要建立用户家目录!(系统账号默认值)
-m :强制!要建立用户家目录!(一般账号默认值)
-c 描述性字符串:注释性描述,这个就是 /etc/passwd 的第五栏的说明内容
-d 目录:指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!一般情况下linux除了执行shell脚本之外 很少使用相对路径
-r :建立一个系统的账号,系统账号不建立家目录;
-s shell:后面接一个 shell ,若没有指定则预设是 /bin/bash
创建用户 useradd u1
u1:x:1000:1001::/home/u1:/bin/bash
创建普通用户的时候还会创建一个按用户名命名的组,并且把该用户添加到这个同名的组里面
[root@bogon etc]# cat /etc/group | grep 1001
u1:x:1001:
创建用户并指定uid useradd -u 1002 u2
u2:x:1002:1002::/home/u2:/bin/bash
创建用户并指定用户组 useradd -g 1002 u3
useradd -g u2 u3
u3:x:1003:1002::/home/u3:/bin/bash
创建用户并附加到用户组 useradd -G 1002/u2 u4
创建u4用户,并创建u4用户组,同时将u4用户附加到u2(gid是1002)的用户组
创建用户并指定描述信息 useradd -c 这是一个普通用户 u2
u5:x:1004:1004:这是一个普通用户:/home/u5:/bin/bash
创建用户,并指定其他的目录,作为家目录,不使用默认的家目录
创建目录 mkdir -p /userhome/user
创建用户 useradd -d /userhome/user u6
u6:x:1005:1005::/userhome/user:/bin/bash
创建系统用户 useradd -r sysu1
uid<1000
sysu1:x:998:996::/home/sysu1:/bin/bash
修改用户 usermod
命令格式:
usermod [选项] 使用者账号名
命令功能:
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。
选项和参数:
-c 备注:修改用户帐号的备注文字;
-d 家目录:修改用户登入时的主目录,前提:已存在要修改的家目录;
-g 初始群组:修改用户所属的群组;
-G 附加群组;修改用户所属的附加群组;
-h:显示帮助信息;
-l 帐号名称 :修改用户帐号名称;
-s shell:修改用户登入后所使用的shell;
-u UID:修改用户ID;
修改用户名和描述信息
usermod -l u8 -c u8用户 u7
修改用户的家目录
mkdir /userhome/u8
usermod -d /userhome/u8 u8
修改用户的附加组
usermod -G u2 u8
u2:x:1002:u8
修改用户所属的组
usermod -g u3 u8
修改用户的uid
要求:uid未被占用
usermod -u 1007 u8
修改密码 passwd
root用户可以修普通用户的密码,而普通用户只能修改自己的密码
修改当前登陆用户的密码:passwd
使用root用户修改普通用户的密码: passwd u8
切换用户及环境变量:su - u8
只切换用户不切换环境变量:su u8
输出环境变量: echo $PATH
删除用户 userdel
命令格式:
userdel [选项] 使用者账号名
命令功能:
userdel删除一个用户账号和相关的文件。 userdel命令修改系统账号文件/etc/passwd,删除所有条目有关用户登录名。该用户名必须存在。
选项和参数:
-f,–force 该选项强制删除用户账号,即使该用户仍在登录。
-r, --remove 在用户家目录里面的文件将被删除并且家目录本身和用户的邮件池也会被删除。文件位于其他文件系统的必须手动搜索和删除。
建议不要用 -r 直接删除,用普通删除,家目录先保留一段时间,然后在手动删除,以免家目录内的文件找不回来。
只删除用户不删家目录:userdel u8
删除用户及家目录: userdel -r u6
查看用户信息 id
命令格式:
id [选项][用户名称]
命令功能:
id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。
id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。
选项:
-g 显示用户所属群组的ID。
-G 显示用户所属,附加群组的ID。
–help 显示帮助。
查看当前登陆用户的所有信息 :id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
查看用户所属的组的信息: id -g u2
[root@bogon ~]# id -g u2
1002
查看用户所属的组及附加组的信息: id -G u2