linux下用户和组的管理,Linux 用户和用户组管理

一、用户信息存储文件

1. /etc/passwd 存储当前系统中所有用户的信息

文件内容格式

用户名:密码占位符:用户ID:用户组ID:用户注释信息:用户家目录:shell类型信息之间以 : 分隔

实例[root/etc]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

vagrant:x:1001:1001::/home/vagrant:/bin/bash

vboxadd:x:997:1::/var/run/vboxadd:/bin/false

memcached:x:996:995:Memcached daemon:/run/memcached:/sbin/nologin

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

... 省略n行 ...

2. /etc/shadow 存储当前系统中所有用户的密码信息

文件内容格式

用户名:密码(加密后):最后一次修改时间:最小时间间隔:密码有效期:警告时间:不重要,省略...信息之间以 : 分隔

"密码" 字段存放的是加密后的用户密码:如果为空,则对应用户没有密码,登录时不需要密码;

星号(*)代表帐号被锁定,不能登录;

双叹号 (!!) 表示这个密码已经过期了;

$6$ 开头,表明是用SHA-512加密;

$1$ 开头,表明是用MD5加密;

$2$ 开头,表明是用Blowfish加密;

$5$ 开头,表明是用 SHA-256加密;"最后一次修改时间" 表示的是从1970年1月1日起,到用户最后一次修改密码的天数。

"最小时间间隔" 指的是两次修改密码之间所需的最小天数。

"密码有效期” 指的是密码保持有效的最大天数。

"警告时间” 指的是从系统开始警告用户到用户密码正式失效之间的天数。

实例[root/etc]# cat /etc/shadow

root:$1$damlkd,f$UC/u5pUts5QiU3ow.CSso/:16630:0:99999:7:::

bin:*:16372:0:99999:7:::

sync:*:16372:0:99999:7:::

mail:*:16372:0:99999:7:::

nobody:*:16372:0:99999:7:::

sshd:!!:16630::::::

vagrant:$1$5eWJGPyo$/T4TT4hm2e.uKUhx9V0mi.:16630:0:99999:7:::

vboxadd:!!:16630::::::

memcached:!!:17667::::::

apache:!!:17675::::::

... 省略n行 ...

二、用户组信息存储文件

1. /etc/group 存储当前系统中所有用户组的信息

文件内容格式

用户组名:组密码占位符:用户组ID:组内用户列表信息之间以 : 分隔

"组内用户列表" 是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

实例[root/etc]# cat /etc/group

root:x:0:

bin:x:1:

wheel:x:10:veewee,vagrant

mail:x:12:

nobody:x:99:

users:x:100:

sshd:x:74:

veewee:x:1000:

vagrant:x:1001:

memcached:x:995:

slocate:x:21:

apache:x:48:

... 省略n行 ...

2. /etc/gshadow 存储当前系统中所有用户组的密码信息

文件内容格式

用户组名:组密码:组管理者:组内用户列表信息之间以 : 分隔

"组密码" 为空或 ! 时,表示用户组没有密码

"组管理者" 为空时,表示组内每个用户都是管理者。多个管理者之间可以使用逗号(,)分隔

"组内用户列表" 是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

实例[root/etc]# cat /etc/gshadow

root:::

bin:::

wheel:::veewee,vagrant

mail:::

nobody:::

users:::

sshd:!::

veewee:!::

vagrant:!::

memcached:!::

slocate:!::

apache:!::

... 省略n行 ...

三、常用用户管理命令

1. useradd 创建用户并设置基本信息

语法useradd [选项] [用户名]

选项-m:自动建立用户的家目录

-d

-g :指定用户所属的用户组

-s :指定用户登入后所使用的shell

-u :指定用户id

-c :加上备注文字。备注文字会保存在passwd的备注栏位中

实例添加一个用户,并为用户在 /home/ 目录自动创建一个同名的家目录[root/etc]# useradd -m zhang

[root/etc]# id zhang

uid=1002(zhang) gid=1002(zhang) 组=1002(zhang)

[root/etc]# cat /etc/passwd | grep zhang

zhang:x:1002:1002::/home/zhang:/bin/bash

[root/etc]# ll /home/ | grep zhang

drwx------ 2 zhang zhang 59 6月 6 01:19 zhang/添加一个用户,指定家目录,用户组,shell,用户ID和备注[root/etc]# useradd -d /home/php -g root -s /bin/bash -u 666 -c 'PHP engineer' wang

[root/etc]# id wang

uid=666(wang) gid=0(root) 组=0(root)

[root/etc]# cat /etc/passwd | grep wang

wang:x:666:0:PHP engineer:/home/php:/bin/bash

[root/etc]# ll /home/ | grep php

drwx------ 2 wang root 59 6月 6 01:26 php/

2. usermod 修改用户基本信息

语法usermod [选项] [用户名]

选项-l :修改用户名

-d

-g :指定用户所属的用户组

-s :指定用户登入后所使用的shell

-u :指定用户id

-c :加上备注文字。备注文字会保存在passwd的备注栏位中

-L:锁定用户密码,使密码无效,即该用户不能使用密码登录

-U:解除密码锁定

注意事项修改用户信息时,用户不能处在登录状态。

用户ID最好不要随便修改,容易造成该用户失去文件的所有者权限。

修改用户家目录,系统并不会自动创建该目录。需要手动创建该目录,并设置所有者权限。

实例修改用户的用户名,用户组,shell和备注[root/etc]# usermod -l zhangfei -g root -s /bin/bash -c 'iOS engineer' zhang

[root/etc]# id zhangfei

uid=1994(zhangfei) gid=0(root) 组=0(root)

[root/etc]# id zhang

id: zhang: no such user

[root/etc]# cat /etc/passwd | grep zhangfei

zhangfei:x:1002:0:iOS engineer:/home/zhang:/bin/bash

[root/etc]# ll /home/ | grep zhangfei

drwx------ 2 zhangfei zhang 79 6月 6 01:50 zhang/锁定和解锁用户密码登录# 锁定用户密码

[root/etc]# usermod -L zhangfei

# 新开一个bash窗口,尝试使用密码登录,被拒接

[Administrator~/Desktop] ]$ssh zhangfei@192.168.33.88

zhangfei@192.168.33.88's password:

Permission denied, please try again.

# 解锁用户密码

[root/etc]# usermod -U zhangfei

# 使用密码登录成功

[Administrator~/Desktop] ]$ssh zhangfei@192.168.33.88

zhangfei@192.168.33.88's password:

Last login: Wed Jun 6 02:04:20 2018

[zhangfei@10 ~]$

3. userdel 删除用户

语法userdel [选项] [用户名]

选项-r:删除用户的同时,删除用户的家目录及里面的文件

-f:强制删除用户,即使用户当前已登录

实例[root/etc]# userdel -r zhangfei

[root/etc]# id zhangfei

uid=1994(zhangfei) gid=0(root) 组=0(root)

[root/zhang]# id zhangfei

id: zhangfei: no such user

[root/etc]# cat /etc/passwd | grep zhangfei

[root/etc]# ll /home/ | grep zhangfei

4. passwd 设置用户密码

语法passwd [选项] [用户名]

选项不加任何选项:'passwd [用户名]',设置用户密码

-d:删除用户密码

-l:锁住用户密码

-u:解锁用户密码

注意事项没有设置密码和被删除密码的用户无法通过密码登录

实例删除用户密码[root~]# passwd -d wang

清除用户的密码 wang。

passwd: 操作成功用户无法使用密码登录[Administrator~/Desktop] ]$ssh wang@192.168.33.88

wang@192.168.33.88's password:

Permission denied, please try again.设置用户密码[root~]# passwd wang

更改用户 wang 的密码 。

新的 密码:

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。用户可以通过密码登录[Administrator~/Desktop] ]$ssh vagrant@192.168.33.88

vagrant@192.168.33.88's password:

Last login: Wed Jun 6 00:13:19 2018 from 10.0.2.2

[vagrant~]$锁定用户密码[root~]# passwd -l wang

锁定用户 wang 的密码 。

passwd: 操作成功用户无法使用密码登录[Administrator~/Desktop] ]$ssh wang@192.168.33.88

wang@192.168.33.88's password:

Permission denied, please try again.解锁用户密码[root~]# passwd -u wang

解锁用户 wang 的密码。

passwd: 操作成功用户可以通过密码登录[Administrator~/Desktop] ]$ssh vagrant@192.168.33.88

vagrant@192.168.33.88's password:

Last login: Wed Jun 6 02:44:50 2018 from 192.168.33.1

[vagrant~]$

4. 禁止 root 用户外的所有用户登录禁止 root 用户外的所有用户登录,只需要在etc目录下创建 /etc/nologin 文件即可[root~] touch /etc/nologin尝试登录,登录失败[Administrator~/Desktop] ]$ssh vagrant@192.168.33.88

vagrant@192.168.33.88's password:

Connection closed by 192.168.33.88删除 etc目录下的 /etc/nologin 文件[root~]# rm /etc/nologin尝试登录,登录成功[Administrator~/Desktop] ]$ssh vagrant@192.168.33.88

vagrant@192.168.33.88's password:

Last login: Wed Jun 6 00:13:19 2018 from 10.0.2.2

[vagrant~]$

四、常用用户组管理命令

1. groupadd 创建用户组

语法groupadd [选项] [用户组名]

选项-g :指定用户组ID

实例添加一个用户组,并制定ID[root~]# groupadd -g 666 php

[root~]# grep php /etc/group

php:x:666:

2. groupmod 修改用户组

语法groupmod [选项] [用户组名]

选项-n :修改用户组名

-g :指定用户组ID

实例修改用户组名[root~]# groupmod -n ios php

[root~]# grep ios /etc/group

ios:x:666:修改用户组ID[root~]# groupmod -g 888 ios

[root~]# grep ios /etc/group

ios:x:888:

3. groupdel 删除用户组

语法groupdel [用户组名]若该用户组中仍有用户,则必须先删除这些用户后,才能删除用户组。

实例[root~]# groupdel ios

[root~]# grep ios /etc/group

4. gpasswd 管理用户组成员

语法gpasswd [选项] [用户组名]

选项-a :添加用户到组

-d :从组中删除用户

实例添加用户到组[root~]# gpasswd -a wang php

正在将用户“wang”加入到“php”组中

[root~]# grep php /etc/group

php:x:666:wang

[root~]# id wang

uid=666(wang) gid=0(root) 组=0(root),666(php)从组中删除用户[root~]# gpasswd -d wang php

正在将用户“wang”从“php”组中删除

[root~]# grep php /etc/group

php:x:666:

[root~]# id wang

uid=666(wang) gid=0(root) 组=0(root)

五、其他用户命令

1. whoami显示当前登录用户名[root~]# whoami

root

2. id [用户名]显示指定用户信息,包括用户ID,用户名,主要组ID及名称,附属组ID及名称[root~]# id

uid=0(root) gid=0(root) 组=0(root)

[root~]# id root

uid=0(root) gid=0(root) 组=0(root)

[root~]# id vagrant

uid=1001(vagrant) gid=1001(vagrant) 组=1001(vagrant),10(wheel)

[root~]# id wang

uid=666(wang) gid=0(root) 组=0(root)

3. groups [用户名]显示指定用户所在的所有组[root~]# groups

root

[root~]# groups root

root : root

[root~]# groups vagrant

vagrant : vagrant wheel

[root~]# groups wang

wang : root

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值