Linux用户与组的管理(命令实操)

参考Linux学习顺序指导目录:https://www.cnblogs.com/lv1572407/p/11815911.html

  首先我们先来了解一下用户和组管理相关的命令。
用户管理命令:useradd、usermod、usedel、passwd及chage。
组管理命令:groupadd、groupdel、groups及gppasswd。

首先我们先来学习如何能够正确使用这些命令以及常用的技巧。

1. 用户组管理
[root@mysql1 ~]# groupadd -g 1000 group001
[root@mysql1 ~]# groupadd -g 2000 group002
[root@mysql1 ~]# groupadd -g 3000 group003
[root@mysql1 ~]# groupadd -g 4000 group004
[root@mysql1 ~]# groupadd -g 5000 group005
可以使-g参数指定创建组的GID。很多大型的商用软件可能是需要的,例如:ORACLE 11G安装。
[root@mysql1 ~]# groupdel group005
groupdel命令是没有帮助手册的,不需要指定任何选项,直接指定需要删除组的名称即可。
其实组管理命令还存在一个groupmod命令,但是一般不常用,需要了解的可以--help查看一下。

2. 用户管理
[root@mysql1 ~]# useradd -u 1000 user001 //指定用户UID
[root@mysql1 ~]# useradd -d /root/user002 user002 //指定用户家目录
[root@mysql1 ~]# useradd -s /sbin/nologin user003 //指定登录的bash shell
[root@mysql1 ~]# useradd -c 'user006 info' user006 //添加用户提示信息
[root@mysql1 ~]# useradd -g 1000 user004 //指定组的GID
[root@mysql1 ~]# useradd -G group001,group002 user005 //添加附属组
以上是用户创建是可能会用到的一些选项,都以实际案例进行了使用方法的说明。
学习万用户创建后,我们再来学习一下如何删除用户。
[root@mysql1 ~]# userdel -r test001 //删除系统中的全部相关信息
这样真的安全吗?一个用户可以删除,但是将其相关的文件删除似乎是不太合理的。
两种方式解决这个问题,一种是提前将文件备份再删除,另一种可以先删除用户,但不要直接删除相关文件。
第一种方式很容易理解。所以在这我们只讲解第二种方式。
[root@mysql1 ~]# userdel user001 //仅删除用户
[root@mysql1 ~]# cp /home/user001/* /bak //数据备份
[root@mysql1 ~]# rm -rf /home/user001/ //删除参与文件
[root@mysql1 ~]# rm -rf /var/spool/mail/user001
tips:如此麻烦的讲解只是为人大家命令"userdel -r test001"不是随便可以使用的。

3. 用户组添加与删除
在创建用户时直接添加用户到指定组
[root@mysql1 ~]# useradd -g group003 -G group001,group002 user005

此外可以用usermod命令修改附属组。
[root@mysql1 ~]# usermod -g group001 user004
[root@mysql1 ~]# usermod -G group002,group003,group004 user004
tips:使用-G指定附属时需要注意,会覆盖原有的所有附属组。所以这条命令就是个黑洞,尽量不要用。
[root@mysql1 ~]# usermod -aG group002,group003,group004 user004
tips:结合-a与-G选项共同使用,会将指定的附属组进行追加操作。

除了useradd和usermod之外,gpasswd命令也可以配置用户的附属组。
[root@mysql1 ~]# gpasswd -d user004 group004 //从组中移除用户
[root@mysql1 ~]# gpasswd -a user004 group004 //添加用户到组

扩展知识之如何修改文件的属主与属组:
[root@mysql1 ~]# chown mysql.mysql /dir1000/file1000
[root@mysql1 ~]# ls -l /dir1000/file1000
-rw-r--r--. 1 mysql mysql 0 Jun 13 17:38 /dir1000/file1000
[root@mysql1 ~]# chown .root /dir1000/file1000
[root@mysql1 ~]# ls -l /dir1000/file1000
-rw-r--r--. 1 mysql root 0 Jun 13 17:38 /dir1000/file1000
[root@mysql1 ~]# chown tom. /dir1000/file1000
[root@mysql1 ~]# ls -l /dir1000/file1000
-rw-r--r--. 1 tom tom 0 Jun 13 17:38 /dir1000/file100
[root@mysql1 ~]# chown mysql.mysql -R /dir1000/
[root@mysql1 ~]# ls -l -d /dir1000/
drwxr-xr-x. 2 mysql mysql 4096 Jun 13 17:38 /dir1000/
[root@mysql1 ~]# ls -l /dir1000/file1000
-rw-r--r--. 1 mysql mysql 0 Jun 13 17:38 /dir1000/file1000
tips1:在仅指定属主修改用户时,属组也会随之改动。
tips2:可以使用-R选项,通过递归的方式将目录下的所有对象修改属主和属组。

猜你喜欢

转载自www.cnblogs.com/lv1572407/p/11816104.html