码迷,mamicode.com
首页 > 其他好文 > 详细

用户,组,权限

时间:2015-06-19 13:44:03      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:用户   权限      

    最近在学习中,感觉在用户,组,权限这一块比较搞,特此在这里总结。

1.用户

概念

我理解中,用户就是使用系统的人。分为root用户,系统用户,普通用户。

root用户就是超级管理员,拥有至高无上的权限,是神。uid=0

系统用户是一些服务需要的用户,shell为/sbin/nologin。无法登陆系统,uid:1到500

普通用户最最一般的用户,是凡人,除了自己的文件,其他都要授权。可以登陆系统。uid:501到60000

命令

关于用户的命令总共有这么三个useradd,usermod,userdel,文件有这么两个?/etc/login.defs,/etc/default/useradd

useradd用来创建用户名,usermod用来修改用户信息,userdel用来删除用户,格式如下:


useradd + 参数 + 用户名 用来新建用户

-d 指定家目录

-s 登陆shell

-u 指定UID

-g 主组

-G 附属组(属于哪些组)

值得注意的是,useradd在创建新用户的时候会默认创建新用户的家目录并把/etc/skel/下的所有文件都复制到新用户的家目录里。

默认是否创建家目录在/etc/login.defs里修改。一般不改。


usermod + 参数 + 用户名 用来修改用户状态信息(uid,gid,属组,shell等),参数如下

-l 新用户名

-u 新userID

-d 用户家目录位置

-g 用户所属主组

-G 用户所属附属组(-G在使用的时候,必须有多少组写多少组,如果本来有个g1,g2,-G g3会把g1,g2覆盖掉剩下个g3)

-L 锁定用户使其不能登陆

-U 解除锁定


用户修改完成后是否生效,可以用以下方法查看:

id + 用户名 可以查看用户名是否更改,uid,gid,属组信息。

uid=4009(username) gid=4012(username) groups=4012(username)


也可以再/etc/passwd文件里查看。passwd文件里面一行数据代表一个用户,以下为username的数据信息。

username:x:4009:4012::/home/username:/bin/bash

:为分隔符,两个数据项之间用:分隔,以下从左边第一个username开始对每个数据项做个说明

username 用户名

x 密码位,加密方式在/etc/login.defs文件中查看。

4009 uid

4012 gid

空白 用户的详细描述(创建用户的时候可以-c写入描述)

/home/username 家目录

/bin/bash shell

另外,shell我理解当中是命令解释器,用来翻译用户输入的指令给计算机。


userdel + 参数 + 用户名  用来删除用户。

-r 递归删除用户的家目录。


2.密码

passwd + 参数 + 用户名

-d 删除密码

-f 强制执行

-k 更新只能发送在过期之后

-l 停止账号使用

-S 显示密码信息

-u 启用已被停止的账户

-x 设置密码的有效期

-g 修改群组密码

-i 过期后停止用户账号

创建用户的时候不会出现密码选项。我们可以通过passwd命令来设置密码。

root 用户下 passwd + 用户名

普通用户下只能在有密码的情况下更改密码,并且只能改自己的密码不能改别人的密码。


2.组

概念:我理解中,组是用户的集合,也是权限的集合。文件属于a组,则a组的所有用户可以拥有g(ugo的g)部分的权限。另外说明一点,要网组里添加用户不是使用group系列的命令,而是用useradd -G或者usermod -G来添加

groupadd + 参数 + 组名  创建一个组。

groupmod + 参数 + 组名  更改组的状态信息

groupdel + 参数 + 组名  删除组(被删除的组必须不属于某个用户的主组)


3.权限

虽然我们在学习中,经常会这样说:a用户权限不够,进不了目录或打不开文件。但是权限从来都不是设置给用户和组的,linux里权限是通过设置文件来实现的。

ll 文件名可以看到文件的详细信息。

drwxr-xr-x. 2 mary tom   4096 Jun 19 09:58 test


先看中间,mary,tom。表示该文件属于mary这个用户,tom这个组。

通过chown命令来修改所属用户,所属组

chown 所属用户.所属组 文件名

常用参数-r 同事修改目录下的所有的文件目录的所有者和所有组。

chown命令单独加上一个用户名,则修改的是拥有者。通过用户名.拥有组来添加则两个一起修改

如果单独修改用户组则用chgrp来修改。


再来看最前面一串字母

drwxr-xr-x 第一位d表示这是一个目录,rwxr-xr-x,每三个为一组,分别代表user,group,others。rwx(u)r-x(g)r-x(o),u权限是针对文件拥有者的,g权限针对所属组,o权限针对除了不在ug内的其他人。

每一部分对应位置都是rwx,

r表示可读

w表示可写

x表示可执行


这里要说明以下文件和目录的rwx分别代表什么意思。

文件:r-可以看文件,w-可以改文件,x-如果文件是可执行文件,则有权限的用户可以执行、

目录:r-可以ls,w可以添加删除该目录下的文件或目录,x-可以进去(cd)



如果改位置有对应字母则表示,该位置有相应权限,如果是-则表示没有权限。

test这个目录对mary这个用户可读可写可执行,对tom这个组里的其他用户,可读可执行,对mary和tom组的用户以外的其他用户可读可执行。

更改ugo位置用chomd命令

chmod u+r test  表示对test目录u位置赋予可读权限。

也可以这样写,

chmod o+rwx test   一次给test目录o位置赋予可读可写可执行权限。

或者这样 

chmod u-r,g+w,o-x test  同时给ugo更改权限用逗号隔开。

另外,增加权限用+,减少用-,赋予用=

+-很好理解,=看以下例子

chmod g=rwx test  表示不管g位原来是什么权限,直接赋予rwx。



当然对文件权限更改格式和目录是一样的,只是最后由目录名,换成文件名。


另外除了用ugo加减权限外,还有数字模式可以添加权限。分别是

r=4

w=2

x=1


数字模式是通过rwx对应的数字相加来赋予文件权限。一共有四位数字,这四位数字通过权限rwx相加来得到比如

0755

第一位0表示没有特殊权限

第二位7表示u位权限

第三位5表示w位权限

第四为5表示o位权限


那具体数字怎么表示,我们同样这个文件

drwx r-x r-x. 2 mary tom   4096 Jun 19 09:58 test

  7   5   5

u=4+2+1=7

w=4+1=5

x=4+1=5

 

这里要说明一点用chomd 数字 文件名 来修改权限,除了特殊位,其他位需要一次写全。

如果要给ugo都赋予rwx权限,则命令是这样的

chmod 777 test


但是如果只给g+w,用数字模式则是

chmod 775 test 

不能用

chmod g=7 test   


除了rwx外,文件和目录还有特殊权限,分别是suid,sgid,sticky

suid针对可执行文件,让执行该文件的用户,暂时以文件拥有者的身份来执行,直至命令结束

比如passwd命令,这条命令是用来修改密码的,起结果保存在/etc/shadow文件中

-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd

----------. 1 root root 1793 Jun 18 17:00 /etc/shadow

shadow文件没任何权限。但是普通可以通过passwd命令来修改自己的密码。修改的密码保存在shadow文件中。能够实现这样的操作,就是suid的作用。


sgid针对目录和文件

sgid对文件操作的时候,和suid差不多,只是suid暂时暂时或者文件拥有者身份来执行,sgid暂时获得文件组的身份来执行。

比如

-rwx--s--x. 1 root slocate 38464 Oct 10  2012 /usr/bin/locate

真对目录的时候,在该目录下创建文件或目录时,拥有组与该目录相同。


sticky针对目录

必须拥有可读可执行权限。进入有t权限目录的用户,该用户如果拥有写的权限,则他只能删除该目录下自己拥有的文件。


suid,sgid,sticky添加方法和基本权限一样。都是使用chmod命令。也同样可以附加给文件和目录,但是suid给目录sticky给文件都是没有意义的。

chmod u+s,g+s,o+t test

chmod 7755 test  


最后,说一句,suid,sgid赋值给文件的时候,极其危险,应谨慎和慎重。






本文出自 “大左” 博客,请务必保留此出处http://dazuo.blog.51cto.com/10418944/1663497

用户,组,权限

标签:用户   权限      

原文地址:http://dazuo.blog.51cto.com/10418944/1663497

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!