linux之旅|linux命令行(五)管理用户和组

目录
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

1.用户信息文件 1.1/etc/passwd文件 文件对应条目,各项之间用 : 分隔

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文件中。
1.2/etc/shadow文件
adins:$6$IlC5gSnU75/4KIzt$lPRyOL1tewVh7LaGVBba95Q5VoLkKObnJIK6kiyiETagPZlpFVtZzUaloWjFrOxOs96NLr2uCpUH0jFnz99ru1 :19048:0:99999:7:::

与passwd文件一样,shadow文件使用 :分隔各项。
对应列表如下:
登录名 加密密码 最后修改密码的日期 多少天后可以修改密码 多少天后必须修改密码 密码到期前多少天通知用户 密码到期后多少天禁用账户 禁用账户的日期 保留字段
adins $6$IlC... 19048 0 99999 7
注:其中最后修改密码的日期,禁用账户的日期,是从1970年1月1日开始算的。
1.3/etc/group文件
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文件一样,代表密码影子存储,该字段可选,设置密码后,即允许不属于组的用户加入。
2.用户管理工具 2.1命令行用户管理 流行的命令行用户管理工具有:useradd、userdel、adduser、usermod、deluser、groupadd、groupdel、groupmod
2.1.1useradd
1.注意: 在使用useradd命令创建新用户时,不会自动为用户创建主目录,不会自动为用户指定shell版本,不会为用户创建密码。
如:useradd project3
2.使用参数创建有主目录,shell版本的用户,
如:sudouseradd-d"/home/project3"-m-s "/bin/bash"project3
常用命令行选项:
(1) -d:指定用户的主目录
(2) -m:如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s:指定用户登录时的shell版本
(4) -M:不创建主目录
2.1创建完修改密码:sudo passwd project3
2.1.2usermod
usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G ][-l ][-s ][-u ] [用户名]修改用户账号参数
参数说明:
-c修改用户帐号的备注文字。
-d登入目录>修改用户登入时的目录。
-e修改帐号的有效期限。
-f修改在密码过期后多少天即关闭该帐号。
-g修改用户所属的群组。
-G修改用户所属的附加群组。
-l修改用户帐号名称。
-L锁定用户密码,使密码无效。
-s修改用户登入后所使用的shell。
-u修改用户ID。
-U解除密码锁定。
2.1.3userdel
userdel [options] 用户名
-f强制删除
-r删除用户和主目录
2.1.4groupadd
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。
2.1.5groupdel
groupdel groupname
2.1.6groupmod
groupmod [option] groupname 修改组参数
-g,--gid修改组ID
-n,--new-name修改组名称
-o --non-unique允许使用重复的组ID
-p --password修改组的密码
2.2GUI用户管理器 Ubuntu:gnome-control-center user-accounts
图形化管理用户账号。
3.粘滞位SetUID和SetGID 使用粘滞位SetUID标记的的程序,允许其他用户根据程序所有者的权限运行。
使用chmod命令可以设置SetUID粘滞位。要使程序具有SetUID,需要在分配的权值前加4,要使程序启用SetUID,可在分配的权值前加2。
如:使/bin/ls变成SetUID程序(不建议这么做)
赋予粘滞位:sudo chmod 4755 /bin/ls755是要赋给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

【linux之旅|linux命令行(五)管理用户和组】

    推荐阅读