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

用户、组和权限

时间:2017-05-30 23:10:31      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:用户、组、权限

           在Linux系统中每一个文件都具有“所有者与所属用户组”属性,那么下面我们就来简单介绍一下所有者与所属用户组。

             在Linux系统中每一个文件都具有“所有者与所属用户组”属性,那么下面我们就来简单介绍一下所有者与所属用户组。

所有者即用户(Username/UID),),用户分为管理员用户和普通用户。

管理员用户:

             名称:一般为root                         uid:0

普通用户(uid范围:1-65535): 

    1、 系统用户:名称可以随便定,用户的uid为1-499(centos6及之前版本), 1-999  (centos7)

                             主要用户对守护进程获取资源进行权限分配

     2、登录用户:名称可以随便定,用户id为500+(centos6及之前版本),1000+(centos7)

                              交互式登录


所属用户组即用户组(Groupname/GID),,一般分为用户的主要组和用户的附加组:

    1、用户的主要组:即主组,用户有且只有一个主组,组名同用户名,且仅包含一个用户:私有组

    2、用户的附加组:用户可以属于零个或多个附加组


Linux中用户和组的配置文件:

/etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)

[root@localhost 192 01:21:51 ~]#vim /etc/passwd

root:x:0:0:he,he room,110,119:/root:/bin/bash

通我们以root账户为例,通过上述我们可以看到在/etc/passwd中储存用户信息的格式为:

login name :登录用名(root)

 passwd :密码 (x)

 UID号 :用户身份编号 (0)

 GID :登录默认所在组编号 (0)

 GECOS :用户全名或注释

 home directory录 :用户主目录 (/root)

 shell :用户默认使用shell (/bin/bash)


/etc/group :组及其属性信息

[root@localhost 193 01:33:38 ~]#vim /etc/group

root:x:0:laohe,h

通我们以root账户为例,通过上述我们可以看到在/etc/group中储存组的信息格式为:

组名:root

组密码:x

GID:0

组成员:laohe,h


/etc/shadow :用户密码及其相关属性

[root@localhost 194 01:38:43 ~]#vim /etc/shadow

root:$6$FJtMrUTBaszVAjxz$aZZV4WPVkd4mfXTkClcdUXlUF0HVliKOdx35vnyqtoigcleA3.C76aaLHO/7Ev5qLKQoM7e4OASjy6PnZ.tWJ.:17316:0:99999:7:::

通我们以root账户为例,通过上述我们可以看到在/etc/shadow存用户密码信息的格式为:

login name:登录用名(root)

加密方式:一般用sha512 加密(6)

salt:俗称为"盐",$FJtMrUTBaszVAjxz$

加密密码:aZZV4WPVkd4mfXTkClcdUXlUF0HVliKOdx35vnyqtoigcleA3.C76aaLHO/7Ev5qLKQoM7e4OASjy6PnZ.tWJ.

更改密码时间:从1970 年1 月1 日起到密码最近一次被更改的时间(17316)

可改密时间:密码再过几天可以被变更(0 表示随时可被变更)

密码多久过期:密码再过几天必须被变更(99999 表示永不过期)

提醒时间:密码过期前几天系统提醒用户(默认为一周)

后面的::信息没有,留做备用


/etc/gshadow :组密码及其相关属性

通我们以root账户为例,通过上述我们可以看到在/etc/gshadow中的用户组信息:

[root@localhost 195 01:55:34 ~]#vim /etc/gshadow

root:::laohe,h

组名: 是用户组的名称,由字母或数字构成(root)
口令:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码 
组管理者:这个字段也可为空,如果有多个用户组管理者,用,号分割

组内用户列表:如果有多个成员,用,号分割(laohe,h)



☆常用的用户管理命令:useradd、usermod、userdel

1、useradd [options] LOGIN      (创建用户)

-u  UID : 用于指定用户的uid

-o  配合-u  选项,不检查UID 的唯一性

-g GID :指明用户所属基本组,可为组名,也可以GID

-c  "COMMENT" :用户的注释信息

-d  HOME_DIR: 以指定的路径( 不存在) 为家目录

-s  SHELL :  指明用户的默认shell 程序

-G  GROUP1[,GROUP2,...] :为用户指明附加组,组须事先存在

-N  不创建私用组做主组,使用users 组做主组

-r:  创建系统用户 CentOS 6: ID<500 ,CentOS 7: ID<1000

19

2、usermod [OPTION] login      (修改用户信息)

-u UID:  新UID

-g GID: 新 新 主 组

-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加组(原来的

附加组将会被覆盖;若保留原有,则要同时使用-a 选项)

-s SHELL :新的默认SHELL

-c ‘COMMENT‘ :新的注释信息

-d HOME:  新家目录不会自动创建;若要创建新家目录并移

动原家数据,同时使用-m 选项

-l login_name:  新的名字


3、userdel [OPTION]... login     删除用户

-r:  删除用户 家目录


☆常用的组管理命令:groupadd、groupmod、groupdel

1、groupadd [OPTION]... group_name     创建组

-g GID:  指明GID 号;

-r:  创建系统组(CentOS 6: ID<500,CentOS 7: ID<1000)


2、groupmod [OPTION]... groupname      修改组

-n group_name:  新名字

-g GID:  新的GID


3、groupdel GROUPNAME                        删除组(组里有成员则不可删)


☆查看和修改密码:

1、查看用户:ID

 id [OPTION]... [USER]

-u:  显示UID

-g:  显示GID

-G:  显示用户所属的组的ID

-n:  显示名称,需配合ugG


passwd [OPTIONS] UserName:  修改指定用户的密码(仅管理员可用)

passwd:  修改自己的密码

常用选项:

-l: 锁定指定用户

-u: 解锁指定用户

-e: 强制用户下次登录修改密码

-n mindays:  指定最短使用期限

-x maxdays :最大使用期限

-w warndays :提前多少天开始警告

-i inactivedays :非活动期限

--stdin :从标准输入接收用户密码

echo " PASSWORD " | passwd --stdin USERNAME


2、组:

groups  [OPTION].[USERNAME]...  查看用户所属组列表


groupmems [options] [action]

options: :

-g, --group groupname 组 更改为指定组 ( 只有root)

Actions:

-a, --add username 指定用户加入组

-d, --delete username 从组中删除用户

-p, --purge 从组中清除所有成员

-l, --list 显示组成员列表


☆权限

在我们使用文件和目录的时候会涉及到一个很重要的问题那就是权限,一般来说权限分为:读(r)、写(w)、执行(x)。这里我们以文件为例:

[root@localhost 217 03:17:31 ~]#ll initial-setup-ks.cfg 

-rw-r--r--. 1 root root 1721 May 17 14:51 initial-setup-ks.cfg

-rw-r--r--即为文件的权限

1为文件的引用计数

第一个root为所有者(属主)

第二个root为所属组

1727为文件的大小

May 17 14:51  文件的创建时间

initial-setup-ks.cfg  为文件名


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

owner:  属主, u

group:  属组, g

other:  其他, o

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

r: Readable

w: Writable

x: eXcutable

X为只给目录不给文件


在Linux中的数字表示法中,r表示4,w表示2,x表示1.


1、修改文件的属主:chown

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

-R:  递归

chown [OPTION]... --reference=RFILE FILE...


 2、修改文件的属组:chgrp

模式法:

chgrp [OPTION]... GROUP FILE...

chmod [OPTION]... MODE[,MODE]... FILE...

MODE: :

修改一类用户的所有权限:

u= g= o= ug= a= u=,g=

修改一类用户某位或某些位权限

u+ u- g+ g- o+ o- a+ a- + -

chmod [OPTION]... --reference=RFILE FILE...(FILE复制RFILE的权限)

数字法:

chmod  权限值   file


☆Linux中的特殊权限:SUID   SGID Sticky

1、SUID: 只对二进制可执行程序有效,对目录无意义。文件启动后启动程序者相当于继承之前这个程序的所有者的权限来使用这个程序

语法:

chmod u+s FILE...

chmod u-s FILE...


2、SGID:

对文件而言,启动进程后,其进程的属主为原程序文件的属组

chmod g+s FILE...

chmod g-s FILE...

对目录而言,一旦某目录被设定了SGID ,则对此目录有写权限的用户在此

目录中创建的文件所属的组为此目录的属组

chmod g+s DIR...

chmod g-s DIR...


3、Sticky:

目录设置Sticky  位,只有文件的所有者或root可以删除该文件

chmod o+t DIR...

chmod o-t DIR...



☆ACL

1、ACL :Access Control List ,实现灵活的权限管理

2、功能:除了传统的命令能对用户、属组、其他人产生约束外,这个命令可以对更多的用户设置权限。

3、生效顺序:所有者、自定义用户、自定义组、其他人

4、centos7默认的文件系统才有ACL功能,centos7之前的版本设置默认创建ext4文件可以手动添加。

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt/test

5、ACL 文件上的group 权限是mask  值(自定义用户,自定义组,拥有组的最大权限), 而非传统的组权限。mask 只影响除所有者和other 的之外的人和组的最大权限。Mask 需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission),用户或组的设置必须存在于mask 权限设定 范围内才会生效。


语法:

setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ..

常用命令:

getfacl  a   file   查看文件的ACL权限

setfacl -k dir  删除默认ACL 权限

setfacl –b file1 清除所有ACL 权限

getfacl file1 | setfacl --set-file=- file2 复制file1的 的acl 权限给file2

setfacl –m u:apache:rwx  file 设置apache用户对file文件的rwx权限setfacl –m g:market:rwx  file  设置market用户组对file文件的rwx权限 setfacl –x g:market file   删除market组对file文件的所有权限getfacl  file  查看file文件的权限














本文出自 “11986114” 博客,请务必保留此出处http://11996114.blog.51cto.com/11986114/1930709

用户、组和权限

标签:用户、组、权限

原文地址:http://11996114.blog.51cto.com/11986114/1930709

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