进程是以其发起者的身份运行的,它对文件的访问权限,取决于此进程的用户的权限。在linux操作系统启动的过程中,为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,而这类用户从不需要登录系统,仅让其他进程以他的身份运行,从而仅能获取普通权限的用户。为此这部分用户称系统用户。同时用户与组密不可分。进程的运行是以它的属主(又称,发起者)来访问的。它能访问资源的权限取决于发起者对某个资源的访问权限。下面是从用户和授权两个角度来讲解用户授权管理。
用户管理
用户按类别分管理员、普通用户(系统用户和登录用户,此处对应id的有效范围)。按组组类别分管理组、普通组、,按用户所属的类别分基本组和附加组、按组与用户是否同名分私有组和公共组。下面是linux系统用户与相对应的数据文件的关系:
目录 | 内容 |
/etc/passwd | login:passwd:uid:gid:comment:home_path:shell |
/etc/shadow | login:encrpted_passwd:last_modify_date:shortest_period:longest_period:warm_time:unactivity_time:out_time:retain_word |
/etc/group | group:passwd:gid:user_list |
用户和组管理命令
groupadd:创建组
-g:指定gid(属组id),默认采用上一个gid+1
-r:创建系统组
groupmod:修改组属性
-g:gid
-n:name(其他人加到这个组,则他们的组名也会发生改变)
groupdel:删除组
私有组不能删除
useradd:创建用户
注意:创建用户时的诸多默认设定配置文件均在/etc/login.defs
-u:uid(属主id)
-g:gid(基本组id)
-c:注释
-G:指明用户的多个附加组
-m:指定家目录。要指定的目录不存在就先创建,再复制/etc/shel目录,最后重命名,否则不复制
-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes,也不创建。
-s:指定shell。其中,指定shell应在/etc/shells(安全shell)文件中,其他目录也可指定(有问题)。
-r:创建系统组
-D:显示创建修改用户默认配置。其中,CREATE_MAIL_SPOOL创建缓冲邮箱,在/var/spool/mail目录下生成。修改的结果保存于/etc/default/useradd文件中
usermod:修改用户属性
-u:指定为修改的id
-g:修改组
-G:修改附加组。修改时,原来有附加组则覆盖原来附加组,通常与-a使用追加可避免
-c:修改注释
-d:修改家目录。修改时,家目录有原文件则丢失原文件,通常与-m结合使用可避免。
-l:修改用户名
-s:修改默认shell
-l:锁定用户的密码(用户原来密码前加"!"实现)
-U:解锁用户密码(与-l相反)
userdel:删除用户
-r:删除用户协同其家目录
passwd:密码管理
(1)不带选项:修改自己的密码
(2)passwd USERNAME:仅root用户修改
-l,-u锁定,解锁
-d:清除密码
-e:过期期限
-i:非活动时长:几天
-n:最短使用期限
-x:最长使用期限
-w:警告期限
--stdin:通常用于重定向输入管道
echo "password" | passed --stdin USERNAME
gpasswd:用户的组管理
-a:向组中添加用户
-d:从组中移除用户
不带选项:给组添加密码
newgrp:临时切换指定的组为基本组(-:重新登录或初始化环境,否则仅切换)。exit可退出组的切换
charge:设置用户密码的过期信息
id:显示用户的真实和有效id
-G:仅显示用户所选的所有的id
-u:用户id
-g:基本组的id
-n:显示名称
su:用户切换
登录式:su - UAERNAME或su -l USERNAME
非登录式:su USERNAME
-c ‘COMMAD’:仅以指定用户运行此处目录
权限管理
文件的权限由mode(模型,如rwx)和onwership(从属关系,如每三位应表示什么)组成的。
ls -l:
rwx rwx rwx:
左三位:属主权限(u)
中三位:属组权限(g)
右三位:其他用户权限(o)
进程对文件访问权限,首先他的属主权限与目标文件的属主是否相同,如果相同,则运用属主权限,否则查进程的属组是否属于文件的属组,不同,就只能运用其他的权限。他们字符意义分别是:
-:无权限
r:读权限,可获取文件的数据
w:写权限,可修改文件的数据
x:执行权限,可将此文件发起运行为进程
文件和目录的读、写、执行的权限意义是不一样。其中:
文件 | 目录 | 二进制 | 十进制 | |
r | 可获取文件的数据 | 可使用ls命令获取其下的所有文件列表(不包括ll) | 100 | 4 |
w | 可修改文件的数据 | 可修改此目录下的文件列表,及创建或删除文件 | 010 | 2 |
x | 可将此文件发起运行为进程(默认情况,无此权限) | 可cd至此目录中,用ll来获取所有文件的详细信息(必须有) | 001 | 1 |
权限管理命令:
chmod:修改文件权限
按其使用方法可分3类:
(1)MODE表示法:
赋权表示法。如:u=,g=,o= ,a=,au=。可操作一类用户
chmod o= text
chmod ug=rw,o= text
授权表示法。如:u+,a+,u-。可操作一类用户的一个权限位
chmod +w text:只有属主有权限(注意)
chmod +r text:所有用户都有读权限
chmod +x text:所有用户都有执行权限
chmod u+x,g+w text
(2)八进制表示法:
chmod 620 text
chmod 66 text(66是左侧为0)
(3)引用参考文件权限:
chmod --reference=/home/test1/ test
常用选项:
-R:递归修改(通常适用用授权表示法对目录授权)
注意:只能修改文件属主为自己的那些文件的权限
从属关系管理命令:(仅管理员能改)
chown(修改属主),chgrp(只能修改属组)
chown:可修改属主和属组的属性
chown shuzhu:shuzu /tmp/test(其中还可将“:”换为“.”号)
chown --reference=/home/test1 test
选项:
-R:递归修改
注意:一个用户对文件无写权限,但对文件的上级目录有写权限,就可文件执行删除操作。
chgrp:修改属组(用法与chown类似,略)
umask:遮罩码。可查看当前umask(仅对当前shell有效)
选项:
文件:666 - umask(默认没有执行权)
目录:777 - umask
install:复制设置文件
选项:
-m:设定权限
-o:设定属主
-g:设定属组
maktemp:创建临时目录
选项:
-d:创建目录
-u:执行无结果
注意:mktmp会将创建的临时文件直接返回,可通过保存其返回值。
本文出自 “userManagementFour” 博客,请务必保留此出处http://lixionggang.blog.51cto.com/8949175/1722568
原文:http://lixionggang.blog.51cto.com/8949175/1722568