程序员Linux学习|Gentoo/Arch/FreeBSD

Linux运维之道(8)——用户和组管理

2016-03-26  本文已影响682人  逃跑中计划

@(Linux)[用户和组管理]


1. 用户和组管理

1.1 资源分派三元组

1.2 Linux用户-UID

管理员root, 0
普通用户:1-65535

1.3 Linux组-GID

管理员组root, 0
普通组

Linux组的类别:

1.4 Linux安全上下文

进程所能够访问的所有资源的权限取决于进程的发起者的身份

  • 比如说,当我以escape这个用户使用ls命令时,首先系统会检测我这个用户是否是这个命令的所有者(rwx),如果不是判断是否为这个命令的所属组(r-x),如果都不是则会应用其他人(r-x)权限。但是,也有一些命令例外,具体什么呢?下一篇文章将会涉及,请多关注。
  • 其实在我们执行命令的时候,系统会重新启动一个bash(假设你使用的是bash)来运行我们的命令,在运行完毕之后返回命令执行的结果。
[escape@localhost ~]$ ll /usr/bin/ls
-rwxr-xr-x. 1 root root 117616 2月  16 23:49 /usr/bin/ls

1.5 Linux用户和组相关的配置文件

配置文件包含:
/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
/etc/group:组及其属性信息;
/etc/shadow:用户密码及其相关属性;
/etc/gshadow:组密码及其相关属性;

/etc/passwd

/etc/group

/etc/shadow

/etc/gshadow

**密码的复杂性策略: **
1、使用数字、大写字母、小写字母及特殊字符中至少3种;
2、足够长;
3、使用随机密码;
4、定期更换;不要使用最近曾经使用过的密码;

2. 用户和组相关的管理类命令


2.1 用户创建:useradd

格式:useradd [options] LOGIN

参数选项:

默认值设定/etc/default/useradd文件中


2.2 组创建:groupadd

格式:groupadd [OPTION]... group_name

参数选项:


2.3 查看用户相关的ID信息:id

格式:id [OPTION]... [USER]

参数选项:


2.4 切换用户或以其他用户身份执行命令:su

格式:su [options...] [-] [user [args...]]

切换用户的方式:
su UserName

su - UserName

换个身份执行命令:
su [-] UserName -c 'COMMAND'

参数选项:

Note:root用户su至其他用户无须密码;非root用户切换时需要密码;


2.5 用户属性修改:usermod

格式:usermod [OPTION] login

参数选项:


2.6 给用户添加密码:passwd

格式:passwd [OPTIONS] UserName

参数选项:

Note: /dev/null and /dev/zero
/dev/null,它是空设备.看作黑洞,它非常等价于一个只写文件,所有写入它的内容都会永远丢失,而尝试从它那儿读取内容则什么也读不到,然而/dev/null对命令行和脚本都非常的有用。
/dev/zero也是一个伪文件,但它实际上产生连续不断的null的流(二进制的零流,而不是 ASCII型的)。写入它的输出会丢失不见,而从/dev/zero读出一连串的null也比较困难,虽然这也能通过od或一个十六进制编辑器来做到。 /dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件。


2.7 删除用户:userdel

格式:userdel [OPTION]... login

参数选项:


2.8 组属性修改:groupmod

格式:groupmod [OPTION]... group

Note:userdel不允许你移除正在线上的使用者帐 号


2.9 组删除:groupdel

格式:groupdel GROUP

Note: 如果有任何一个群组的使用者在线上的话就不能移除该群组,最好先移除使用者后再移除群组。


2.10 组密码:gpasswd

格式:gpasswd [OPTION] GROUP

参数选项:

实战演示:

[root@localhost ~]# gpasswd -A peter test2  #将peter设为test2组管理员
[root@localhost ~]# gpasswd -a peter test2  #将用户peter加入到test2组
[root@localhost ~]# gpasswd -d peter test2  #将用户peter从test2组中移出

2.11 临时切换基本组:newgrp

格式:newgrp [-] [group]
如果用户本不属于此组,则需要组密码

实战演示:

[root@localhost ~]# newgrp www  #登录到www群组

2.12 修改用户属性:chage

格式:chage [OPTION]... LOGIN

参数选项:

其它命令:chfn, chsh, finger

3. 权限管理

文件的权限主要针对三类对象进行定义:

每个文件针对每类访问者都定义了三种权限:

文件:

目录:

举例:

3.1 修改文件权限:chmod

格式:

参数选项:

Note:每种 MODE 都应属于这类形式[ugoa] [-+=] [rwxXst] [ugo]

操作对像

权限设定

权限类别

Note:仅root可以修改文件的属主和属组

实战演示:

[root@localhost ~]# chmod ugo+r nginx_bak.conf        #所有人皆可读取
[root@localhost ~]# chmod a+r nginx_bak.conf          #所有人皆可读取
[root@localhost ~]# chmod ug+w,o-w nginx_bak.conf     #设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
[root@localhost ~]# chmod u+x nginx_bak.conf          #创建者拥有执行权限 
[root@localhost ~]# chmod -R a+r ./www/               #将www下的所有档案与子目录皆设为任何人可读取
[root@localhost ~]# chmod a-x nginx_bak.conf          #收回所有用户的对nginx_bak.conf的执行权限
[root@localhost ~]# chmod 777 nginx_bak.conf          #所有人可读,写,执行
[root@localhost ~# chmod a+s test.ppt                   #chmod g+s ,为某个文件设置替代组标识
[root@localhost ~# ls -al |grep test.ppt
-rwSr-Sr--.  1 tank tank    2320384 11月 18 19:29 test.ppt
# 第一个S指示用户替代标识(suid)已经被设置。
# 第二个S指示替代组标识(sgid)已经被设置。
# 这样,每一个运行该程序的用户将给予和程序拥有者同样有效的用户标识,和用户所属组同样有效的组标识。

3.2 修改文件的属主:chown

格式:chown [OPTION]... [OWNER][:[GROUP]] FILE...

参数选项:

实战演示:

#将nginx.conf所属用户和组改为escape,escape
[root@localhost ~]# chown escape:escape nginx.conf      
#将www目录,所属用户和组改为escape,escape  
[root@localhost ~]# chown -R escape:escape www            
[root@localhost ~]# chown root nginx.conf       #只改变用户
[root@localhost ~]# chown :escape 1.html        #只改变组

3.3 修改文件的属组:chgrp

格式:

参数选项:

实战演示:

[root@localhost www]# chgrp escape  abc.txt       #改变用户组
[root@localhost www]# chgrp -R escape  myweb      #改变myweb目录,以及目录下的所有文件所属组

3.4 文件或目录创建时的遮罩码:umask

格式:umask [-p] [-S] [mode]

参数选项:

常用命令:

实战演示:

[root@localhost ~]# umask        #查看当前用户预设权限
0022
[root@localhost ~]# umask -S     #以字母的形势显示权限
u=rwx,g=rx,o=rx
[root@localhost ~]# umask -p     
umask 0022
[root@localhost ~]# umask 755    #设置预设权限
[root@localhost ~]# umask 
0755

4. 思维导图

用户和组管理
上一篇下一篇

猜你喜欢

热点阅读