目录
1.用户信息文件
1.1/etc/passwd文件
1.2/etc/shadow文件
1.3/etc/group文件
2.用户管理工具
2.1命令行用户管理
2.1.1useradd
2.1.2usermod
2.1.3userdel
2.1.4groupadd
2.1.5groupdel
2.1.6groupmod
2.2GUI用户管理器
3.粘滞位SetUID和SetGID
文件对应条目,各项之间用 : 分隔
root:x:0:0:root:/root:/bin/bash
用户名 | 密码 | 用户ID | 组ID | 占位符 | 主目录 | shell路径 |
Username | passwd | User ID | Group ID | GECOS | Directory | shell |
root | x | 0 | 0 | root | /root | /bin/shell |
passwd 使用x表示使用了影子密码,即密码加密保存到shadow文件中。
adins:$6$IlC5gSnU75/4KIzt$lPRyOL1tewVh7LaGVBba95Q5VoLkKObnJIK6kiyiETagPZlpFVtZzUaloWjFrOxOs96NLr2uCpUH0jFnz99ru1
:19048:0:99999:7:::
与passwd文件一样,shadow文件使用 :分隔各项。
对应列表如下:
登录名 | 加密密码 | 最后修改密码的日期 | 多少天后可以修改密码 | 多少天后必须修改密码 | 密码到期前多少天通知用户 | 密码到期后多少天禁用账户 | 禁用账户的日期 | 保留字段 |
adins | $6$IlC... | 19048 | 0 | 99999 | 7 | 空 | 空 | 空 |
注:其中最后修改密码的日期,禁用账户的日期,是从1970年1月1日开始算的。
adm:x:4:syslog,adins
cdrom:x:24:adins
sudo:x:27:adins
dip:x:30:adins
plugdev:x:46:adins
lpadmin:x:122:adins
lxd:x:133:adins
adins:x:1000:
sambashare:x:134:adins
如图所示,每个用户都有组且可以不止一个,passwd文件中记录的组ID是默认组ID。
对应字段:
组名称 | 组密码 | 组ID | 组成员 |
Group name | Group passwd | Group ID | Group members |
adm | x | 4 | syslog,adins |
可以看到组密码字段的 x 同passwd文件一样,代表密码影子存储,该字段可选,设置密码后,即允许不属于组的用户加入。
流行的命令行用户管理工具有:useradd、userdel、adduser、usermod、deluser、groupadd、groupdel、groupmod
1.注意: 在使用useradd命令创建新用户时,不会自动为用户创建主目录,不会自动为用户指定shell版本,不会为用户创建密码。
如:useradd project3
2.使用参数创建有主目录,shell版本的用户,
如:sudo useradd -d "/home/project3" -m -s "/bin/bash" project3
常用命令行选项:
(1) -d: 指定用户的主目录
(2) -m: 如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s: 指定用户登录时的shell版本
(4) -M: 不创建主目录
2.1创建完修改密码:sudo passwd project3
usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l ][-s ][-u ] [用户名] 修改用户账号参数
参数说明:
-c 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e 修改帐号的有效期限。
-f 修改在密码过期后多少天即关闭该帐号。
-g 修改用户所属的群组。
-G 修改用户所属的附加群组。
-l 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
userdel [options] 用户名
-f 强制删除
-r 删除用户和主目录
groupadd [options] groupname 添加一个新的组
参数
-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN(1000)的最小值,并且大于每个其他组。
-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MIN到SYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MIN到GID_MAX。
groupdel groupname
groupmod [option] groupname 修改组参数
-g,--gid 修改组ID
-n,--new-name 修改组名称
-o --non-unique 允许使用重复的组ID
-p --password 修改组的密码
Ubuntu:gnome-control-center user-accounts
图形化管理用户账号。
使用粘滞位SetUID标记的的程序,允许其他用户根据程序所有者的权限运行。
使用chmod命令可以设置SetUID粘滞位。要使程序具有SetUID,需要在分配的权值前加4,要使程序启用SetUID,可在分配的权值前加2。
如:使/bin/ls变成SetUID程序(不建议这么做)
赋予粘滞位:sudo chmod 4755 /bin/ls 755是要赋给ls的权限,4是粘滞位
删除粘滞位:sudo chmod 755 /bin/ls
赋予用户粘滞位:sudo chmod u+s /bin/ls 这是chmod的变体
删除用户的粘滞位:sudo chmod u-s /bin/ls
如:使/bin/ls变成SetGID程序(不建议这么做)
赋予SetGID:sudo chmod g+s /bin/ls
删除SetGID:sudo chmod g-s /bin/ls