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版本的用户,

如: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

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/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

 

你可能感兴趣的:(linux之旅,linux,bash,运维)