首页 > 代码库 > 【Linux笔记】Linux的用户、组管理
【Linux笔记】Linux的用户、组管理
1. Linux的用户、组管理
1) 用户
i. 添加用户
useradd 用户名
useradd 不带参数直接添加用户时,家目录默认在/home下,默认使用bash shell
例1:
[root@test etc]# useradd testyx
[root@test etc]# cd /home
[root@test home]# ls
ads_yx testyx
[root@test home]# passwd testyx
Changing password for user testyx.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@test home]# cat /etc/passwd|grep testyx
testyx:x:501:502::/home/testyx:/bin/bash
useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s shell 用户名
例2:
[root@test home]# useradd -d /home/test1 -g test -p 123456 -s /bin/bash testyx1
[root@test home]# cat /etc/passwd|grep testyx1
testyx1:x:502:501::/home/test1:/bin/bash
[root@test home]# cat /etc/group|grep test
test:x:501:
testyx:x:502:
ii. 修改用户
usermod
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
注意:更改家目录时,目的家目录必须存在且为绝对路径
例1:修改 testyx的用户名为 testyxc
# usermod -l testyxc testyx
例2:锁定账号 testyxc
# usermod -L testyxc
例3:解除对 testyxc的锁定
# usermod -U testyxc
iii. 删除用户
userdel 用户名
只删除用户,不删除家目录
例:
[root@test home]# userdel testyx
[root@test home]# cd /home
[root@test home]# ll
total 12
drwx------ 3 ads_yx yxtest 4096 Sep 15 07:52 ads_yx
drwx------ 2 testyx1 test 4096 Sep 22 01:57 test1
drwx------ 2 501 502 4096 Sep 22 01:50 testyx
userdel -r用户名
删除用户及家目录
例:
[root@test home]# userdel -r testyx1
[root@test home]# ll
total 8
drwx------ 3 ads_yx yxtest 4096 Sep 15 07:52 ads_yx
drwx------ 2 501 502 4096 Sep 22 01:50 testyx
可以看到/home 下的testyx1的用户家目录test1已经被删除
2) 切换用户
i. su 用户名
不会重新加载切换用户的环境变量
例:
[root@test home]# cd /opt
[root@test opt]# pwd
/opt
[root@test opt]# su ads_yx
[ads_yx@test opt]$ pwd
/opt
可以看到切换到ads_yx用户后,当前目录没有改变
ii. su – 用户名
会重新加载切换用户的环境变量
[root@test opt]# pwd
/opt
[root@test opt]# su - ads_yx
[ads_yx@test ~]$ pwd
/home/ads_yx
可以看到切换到ads_yx用户后,当前目录改变为ads_yx的家目录,因为su – ads_yx时重新加载了用户的环境变量
iii. sudo
普通用户下获取超级用户权限
配置:在/etc/sudoers文件中找到 root ALL=(ALL) ALL 这一行,在它下面加入并保存:
ads_yx ALL=(ALL) NOPASSWD:ALL
3) 查看当前用户
i. 查看当前用户的uid 和 gid
[root@test home]# id
uid=0(root) gid=0(root) groups=0(root)
ii. 查看当前用户是谁
[root@test home]# whoami
root
4) 环境变量
i. 系统环境变量
系统环境变量是放在/etc/profile文件中,使环境变量生效是source命令
[root@test ~]# echo $PATH
/opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
ii. 用户环境变量
用户自己环境变量是放在用户家目录的.bash_profile文件中*(该示例的shell为bash)
[root@test ~]# su - ads_yx
[ads_yx@besttest ~]$ echo $PATH
/opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ads_yx/bin
iii. env查看环境变量
[ads_yx@test ~]$ env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
JRE_HOME=/opt/jdk1.7.0_75/jre
USER=ads_yx
……
PATH=/opt/lampp/bin:/opt/jdk1.7.0_75/bin:/opt/jdk1.7.0_75/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ads_yx/bin
……
5) 用户组
iv. 添加用户组
groupadd -g 组id 组名
例:
[root@test ~]# groupadd -g 580 testcc
[root@test ~]# cat /etc/group|grep testcc
testcc:x:580:
v. 修改用户组
groupmod -g 新的组id –n 组新名 组旧名
例:
[root@test ~]# groupmod -g 581 testcc
[root@test ~]# cat /etc/group|grep testcc
testcc:x:581:
vi. 删除用户组
groupdel 组名
例:
[root@test ~]# groupdel testcc
[root@test ~]# cat /etc/group|grep testcc
[root@test ~]# --查询不到组信息
【Linux笔记】Linux的用户、组管理