linux用户管理

Posted flyor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用户管理相关的知识,希望对你有一定的参考价值。

添加用户

useradd或者adduser。其实adduser是useradd的一个软连接。以useradd为例,其用法为 useradd  [option]  USERNAME

1 [[email protected] ~]# ll `which adduser`
2 lrwxrwxrwx. 1 root root 7 5月  26 14:21 /usr/sbin/adduser -> useradd

-u  指定新添加用户的UID,不过根据规定,普通用户的UID必须大于499且不能和已存在的UID重复。

1 [[email protected] ~]# useradd -u 1010 user1
2 [[email protected] ~]# tail -1 /etc/passwd
3 user1:x:1010:1010::/home/user1:/bin/bash

-g 指定新添加用户的基本组,可以使用GID也可以使用组名来为其指明基本组(可以用id命令来查看用户信息)

1 [[email protected] ~]# useradd -g root user2
2 [[email protected] ~]# id user2
3 uid=1011(user2) gid=0(root) 组=0(root)

-G 指定新添加的用户的附加组,附加组可以有多个,多个附加组之间用逗号隔开。

1 [[email protected] ~]# useradd -G user1,root user3
2 [[email protected] ~]# id user3
3 uid=1012(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1)

-d 为新添加的用户指定家目录,默认情况下家目录是/home下的与用户名同名的目录。

-M 不为新用户创建家目录。

-s 为新添加的用户指定默认的shell。(系统中有一个nologin的shell可以禁止某账户登入)

1 [[email protected] ~]# useradd -s /sbin/nologin user4
2 [[email protected] ~]# su user4
3 This account is currently not available.

可以使用 echo $SHELL 来查看当前用户的shell

-r 添加新用户为系统用户,系统用户的UID在1-499之间,一般不能登入,没有家目录。

注:该命令添加的用户的部分默认参数(比如用户的默认shell)在/etc/default/useradd文件中。

 

查看用户信息

用id命令可以查看用户信息,用法:id  [option]  [USERNAME],不指定用户名时默认用户为当前用户。

-u 查看UID

-g 查看基本组的GID

-G 查看所有组的GIO

-n 和上面的选项组合使用,用于显示名称,而非id号

1 [[email protected] ~]# id -u user1
2 1010
3 [[email protected] ~]# id -un user1
4 user1
5 [[email protected] ~]# id -G user3
6 1012 0 1010
7 [[email protected] ~]# id -Gn user3
8 user3 root user1

finger命令也可以查看用户相关信息

1 [[email protected] ~]# finger user1
2 Login: user1                      Name: 
3 Directory: /home/user1                  Shell: /bin/bash
4 Never logged in.
5 No mail.
6 No Plan.

 

删除用户

使用userdel命令来删除用户,不过值得注意的是userdel命令默认情况下是不会删除用户的家目录。

 userdel的用法:userdel  [option]  USERNAME

-r 同时删除用户的家目录。

1 [[email protected] ~]# ls /home
2 boost  compute  EasyDrcom  libpcap  lost+found  user1  user2  user3  user4
3 [[email protected] ~]# userdel user1
4 userdel:组“user1”没有移除,因为它包含其它成员。
5 [[email protected] ~]# userdel -r user2
6 [[email protected] ~]# ls /home
7 boost  compute  EasyDrcom  libpcap  lost+found  user1  user3  user4

 

修该用户信息

使用usermod来修改用户的账户信息,其用法同useradd。具体实例如下:

 1 [[email protected] ~]# id user3
 2 uid=1012(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1)
 3 [[email protected] ~]# usermod -u 505 user3
 4 [[email protected] ~]# id user3
 5 uid=505(user3) gid=1012(user3) 组=1012(user3),0(root),1010(user1)
 6 [[email protected] ~]# finger user3
 7 Login: user3                      Name: 
 8 Directory: /home/user3                  Shell: /bin/bash
 9 Never logged in.
10 No mail.
11 No Plan.
12 [[email protected] ~]# usermod -g 0 -s /bin/tcsh user3 #这里该的基本组必须事先存在
13 [[email protected] ~]# !id
14 id user3
15 uid=505(user3) gid=0(root) 组=0(root),1010(user1)
16 [[email protected] ~]# !fing
17 finger user3
18 Login: user3                      Name: 
19 Directory: /home/user3                  Shell: /bin/tcsh
20 Never logged in.
21 No mail.
22 No Plan.

-l 参数用于修改用户名

1 [[email protected] ~]# usermod -l u3 user3
2 [[email protected] ~]# id u3
3 uid=505(u3) gid=0(root) 组=0(root),1010(user1)

注:如果使用-G为用户修改附加组的话,默认情况下会覆盖原有的附加组,如果只想追加新的附加组可以使用 -aG 其中a表示追加。使用 -d 修改用户家目录的时候最好用再配合 -m 使用,其意思是修改家目录的同时把原来家目录下的文件复制一份到目的家目录。

修改用户的登入shell还可以使用 chsh (change shell)命令。其用法为 chsh  USERNAME

可以用pwck来检查用户账号的完整性。

 

修改用户密码

使用passwd命令来修改用户的密码,用法:passwd  [USERNAME]

对于普通用户来说,只能使用passwd命令,用来修改自己的密码。对于管理员来说,不仅可以使用passwd来修改自己的密码,还可以使用passwd  USERNAME 命令来修改别人的密码。

passwd可以使用 --stdin 参数来指明从标准输入来获取密码。

1 [[email protected] ~]# passwd user3
2 更改用户 user3 的密码 。
3 新的 密码:
4 无效的密码: 密码未通过字典检查 - 过于简单化/系统化
5 重新输入新的 密码:
6 passwd:所有的身份验证令牌已经成功更新。
7 [[email protected] ~]# echo "123456789" | passwd user3 --stdin
8 更改用户 user3 的密码 。
9 passwd:所有的身份验证令牌已经成功更新。

-d 参数可以删除用户的密码。

 

组的创建

组的创建使用groupadd命令,可以使用 -g 指定GID,-r表明改组为系统组。具体用法和useradd类似,以下关于组的操作命令的用法均可参考关于用户操作的命令的用法。

 

组信息修改

groupmod 命令用于修改组信息,-g 修改GID,-n 修改组名。

 

组的删除

groupdel 命令用于删除一个组

 

组添加密码

使用 gpasswd 命令用于修改组密码。组密码主要用于临时改变用户所属的组。

比如下面的代码中,user3用户临时使用了user4组创建了一个b.txt文件

 1 [[email protected] ~]# usermod -l user3 u3
 2 [[email protected] ~]# gpasswd user4
 3 正在修改 user4 组的密码
 4 新密码:
 5 请重新输入新密码:
 6 [[email protected] ~]# su - user3
 7 上一次登录:五 7月 28 06:29:18 CST 2017pts/1 8 [[email protected] ~]$ touch a.txt
 9 [[email protected] ~]$ id
10 uid=505(user3) gid=0(root) 组=0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
11 [[email protected] ~]$ ll
12 总用量 0
13 -rw-r--r--. 1 user3 root 0 7月  28 06:30 a.txt
14 [[email protected] ~]$ newgrp user4
15 密码:
16 [[email protected] ~]$ touch b.txt
17 [[email protected] ~]$ id
18 uid=505(user3) gid=1013(user4) 组=1013(user4),0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
19 [[email protected] ~]$ ll
20 总用量 0
21 -rw-r--r--. 1 user3 root  0 7月  28 06:30 a.txt
22 -rw-r--r--. 1 user3 user4 0 7月  28 06:31 b.txt
23 [[email protected] ~]$ exit
24 exit
25 [[email protected] ~]$ id
26 uid=505(user3) gid=0(root) 组=0(root),1010(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
27 [[email protected] ~]$ exit
28 logout
29 [[email protected] ~]# 

注:上面的newgrp用于临时切换基本组,当这个临时组用完要退出时使用exit命令。

以上是关于linux用户管理的主要内容,如果未能解决你的问题,请参考以下文章

在每个用户的Rails中使用片段缓存

SnippetsLab for Mac 1.9 中文共享版 – 强大的代码收藏管理工具

片段 XXX 未与片段管理器关联

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?