您的位置:首页 > 运维架构 > Linux

linux 用户和权限管理

2016-03-10 22:44 639 查看
用户和权限管理一、linux用户和组的分类用户:1. Linux是多用户使用的系统资源,多任务同时运行多个进程。用户分为管理员(root)和普通用户两大类2. 普通用户分为系统用户和登陆用户系统用户:用于运行服务程序普通用户:系统的资源的正常使用用户的标识:UID 用16bits二进制数字:0-65535;管理员:03. 普通用户分为(系统用户、登陆用户) 系统用户:centos 5或是 centos6 :1-499 Centos7 :1-999登陆用户:centos 5或是 centos6 :500+ Centos7:1000+4.用户有用户的名称解析库,用于用户名称的转换 解析库: username< - - UID解析库的地址为 /etc/passwd : 用户名、UID及其它属性信息解析库; 组:linux组分为管理员组 和普通用户组普通用户组(系统组、登陆组)Linux组的标识:GID

普通用户组(系统组、登陆组) 系统组:centos 5或是 centos6:1-499 Centos7:1-999 登陆组:centos 5或是 centos6:500+ Centos7:1000+2.用户组有用户组的名称解析库,用于组名称的转换 解析库:groupname < - - > GID
3.用户组类别:以用户为核心
用户的主组又称基本组 (备注:用户的主组指基本组)
用户的附加组指的时额外组(备注:用户的附加组指额外的组)

4.组类别:根据组内容纳的用户来划分
(1)私有组:与用户名相同,且只有一个此用户;
(2)公共组:组内包含了多个用户
二、用户和组的管理
1.主要是用linux命令来进行管理: 组管理的命令有:groupadd , groupmod ,groupdel 用户管理的命令有:useradd, usermod, userdel 用户和组的的认证机制:passwd2. 组解析库文件:/etc/groupGRPNAME:x:GID:user1, user2, ...(此内容为组解析库里的内容,从左至右代表的是)组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔 groupadd命令:添加组 groupadd [选项] group groupadd +用户 :范例如下 [root@localhost home]#groupadd mage [root@localhost home]# cat /etc/group | tail -n 1 (此命令是查看一下是否添加成功)mege:x:1005: groupadd + -g GID:指明GID;指明组的ID号范例如下[root@localhost home]#group –g 1009 li 添加登陆用户组为 li 组gid 为1009 [root@localhost home]# cat /etc/group |tail -n 1查看一下组解析库里是否添加成功li:x:1009: groupadd + -r, --system:添加系统组;范例如下 [root@localhost home]# groupadd -r test1 添加系统组为 test1[root@localhost home]# cat /etc/group | tail -n 1查看一下组解析库里是否添加成功test1:x:989: groupmod命令:修改组信息 groupmod [选项] GROUP groupmod + -g GID 修改组的GID号 范例如下 [root@localhost ~]# groupmod -g 988 test1 (修改组test1的GID号为988)[root@localhost ~]# cat /etc/group | tail -n 1 (查看组test1的GID号是否修改成功)test1:x:988: groupmod + -n NEW_NAME:修改组名;范例如下 [root@localhost ~]# groupmod -n test2test1[root@localhost ~]# cat /etc/group | tail -n 1test2:x:988: groupdel命令:删除组 groupdel [选项] GROUP + 已经有的组可以将其组删除:范例如下 [root@localhost ~]# groupdel test2 (删除组test2) [root@localhost ~]# cat /etc/group | tail -n 1(查看一下组解析库里是否已经删除成功) li:x:1009: 3.用户解析库:/etc/passwd name:password:UID:GID:GECOS:directory:shell useradd命令:添加用户 useradd + 新的用户名可直接添加之,范例如下 [root@localhost home]# useradd mage1 添加用户为mage1 [root@localhost home]# ls 查看mage1用户是否添加成功 bash basher lwm mage1 nologin testbash useradd [选项] 登录名 useradd +-c选项 --comment COMMENT:添加新用户时,写注释信息,一般为Full Name; 范例 [root@localhost~]# useradd -c "magehao" mage4 (添加用户为mage4 注释信息 为“mamgehao“) [root@localhost~]# cat /etc/passwd | tail -n 1 (查看一下新用户,和注释信息是 否添加成功) mage4:x:1007:1007:magehao:/home/mage4:/bin/bash -d, --home /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会得利skel相关的文件给用户; -g, --gidGROUP:用户的基本组组名或GID; Useradd -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;范例如下: [root@localhost ~]useeradd -G magege wen (添加wen用户 附加组为 magege)[root@localhost ~]# id wenuid=1008(wen) gid=1008(wen) 组=1008(wen),1011(magege) -m,--create-home:强制创建家目录;
-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes; Useradd -r, --system:创建一个系统账户,范例如下 [root@localhost ~]# useradd -r test5[root@localhost ~]# id test5 uid=992(test5) gid=989(test5) 组=989(test5) -s,--shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell;
-u, --uidUID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。
注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中; useradd -D:显示创建用户时的默认设置; useradd-D 选项:设置某默认选项; -e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1 表示禁用这个功能。 4.usermod命令:修改账号信息一下为参数选项 Usermod -c, --comment COMMENT -d,--home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中; -g, --gidGROUP -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组; -l,--login NEW_LOGIN:修改当前用户的用户名; -s,--shell SHELL -u,--uid UID -L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!” -U,--unlock:解锁用户的密码。这将移除加密的密码之前的“!”
5.userdel命令:删除用户账号Userdel + -r选项 --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除。 范例 [root@localhost home]# userdel -r mage4 (将其mage4 删除)[root@localhost home]# ls (查看一下是否删除成功)bash basher lwm mage1 mage3 nologin testbash wen[root@localhost home]# 6.passwd命令:密码管理命 passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-wwarndays] [-i inactivedays] [--stdin] [username] (1) passwd:修改自己的密码;后面不用加用户名(2) passwd username:修改其它用户的密码,仅root有此权限;passwd +要修改的用户名即可,范例如下: [root@localhost home]# passwd wen更改用户 wen 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。 密码复杂度: (1) 不能少于8个字符; (2) 不能使用与过去的密码太相似的密码; (3) 应该使用四类字符中的至少三类; Passwd + 选项: -l:锁定密码,用户不能登陆进系统 -u:解锁解密,用户可以进行登陆系统 -d:清除密码,用户不需要密码即可登陆系统 --stdin:从标准输入接收密码; echo"PASSWORD" | passwd --stdin USERNAME范例如下: [root@localhost home]#echo "123" | passwd - -stdin wen 更改用户 wen 的密码 。 passwd:所有的身份验证令牌已经成功更新。 7.id命令:查看用户相关的id信id [OPTION]... [USER] 选项 -u:仅查看uid -g:仅查看gid -G:查看所属的所有组的ID; -n:显示名称,而非ID;8.gpasswd命令:为组添加密码 组密码文件:/etc/gshadow gpasswd [选项] group -a USERNAME:把用户添加至组中,范例如下 [root@localhost home]# gpasswd -a wen magege 正在将用户“wen”加入到“magege”组中 -d USERNAME:从此组中移除此用户,范例如下 [root@localhost ~]# gpasswd -dwen magege 正在将用户“wen”从“magege”组中删除 9.newgrp命令:登录到一个新组(这里指的是用户登陆到新组中,会提到要密码) [root@localhost ~]# gpasswd magege 正在修改 magege 组的密码 新密码: 请重新输入新密码:
[root@localhost ~]# su wen [wen@localhost root]$ newgrp magege 密码:123 chage命令:修改用户账号的各种期限; chage+用户 ,范例如下 [root@localhost ~]# chage wen 正在为 wen 修改年龄信息 请输入新值,或直接敲回车键以使用默认值 最小密码年龄 [0]: 最大密码年龄[99999]: 最近一次密码修改时间(YYYY-MM-DD) [2016-03-10]: 密码过期警告 [7]: 密码失效 [-1]: 帐户过期时间(YYYY-MM-DD) [-1]:

二、用户和权限管理:

1.进程安全上下文:
进程:运行一个程序文件而产生,通常由一个用户发起;进程则以发起者的身份运行;
判断进程的发起者是否与文件属主相同,如果是,则以属主的身份来访问,从而应用属主权限;否则判断进程的发起者是否属于文件的属组,如果是,则应用属组权限;否则
应用“其它”权限
文件系统文件权限,以root用户/目录下的目录文件为例进行讲解如下
drwxr-xr-x. 20 root root 3180 3月 1016:50 dev
从左到右依次代表的含义解释:
d:指的是目录文件(文件类型)
rwx:属主权限连接数所有者用户组文件大小修改日期文件名
r-x: 属组权限
r-x: 其他用户对此文件目录的权限
20:硬连接数量,表示有多少个文件名连接到此节点(i-node)R oot: 文件的所有者Root:文件所有用户组3180:文件的大小10 16:50:文件修改的时间Dev:文件名
三类用户:属主:owner, u 属组 group, g 其它:other, o

权 限:r: readable,可读 w: writable, 可写 x:excutable, 可执行

权限管理:r:可获取文件的数据;w:可修改文件的数据; x:可将此文件运行为进程;

目 录:r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;
w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;
x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

rwxrwxrwx:(前三位:owner: rwx 中三位 group: rwx 后三位 other: rwx )

2.权限组合机制:
以owner为例:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

3.权限管理: ownership:仅管理员有权限
改属主:chown
改属组:chgrp
Chmod(修改用户的权限)

chmod命令:
作用:changefile mode bits
chmod[OPTION]... MODE[,MODE]... FILE...
chmod[OPTION]... OCTAL-MODE FILE...
chmod[OPTION]... --reference=RFILE FILE...
用户的标识符:u,g,o,a
(1)chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
赋权表示法:直接操作一类用户的所有权限位rwx;

u= 如下范例:

[root@localhost/]# ls -ld dev (列出原有dev目录的权限)
drwxr-xr-x. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod u=r dev (修改dev目录的属主的权限为只读)[root@localhost /]# ls -ld devdr--r-xr-x. 20 root root 3180 3月 10 16:50 dev
g= 如下范例

[root@localhost/]# ls -ld dev (列出原有dev目录的权限)
dr--r-xr-x. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod g=rwx dev (为dev目录属主添加写)[root@localhost /]# ls -ld devdr--rwxr-x. 20 root root 3180 3月 10 16:50 dev
o= 如下范例

[root@localhost/]# ls -ld dev (列出原有dev目录的权限)
dr--rwxr-x. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod o=rwx dev (为dev目录文件添加写权限)[root@localhost /]# ls -ld devdr--rwxrwx. 20 root root 3180 3月 10 16:50 dev
a= 如下范例

[root@localhost/]# ls -ld dev (列出原有dev目录的权限)
dr--rwxrwx. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod a=rwx dev (所有用户都有对dev目录文件的读写执行权限)[root@localhost /]# ls -ld devdrwxrwxrwx. 20 root root 3180 3月 10 16:50 dev
(2)两类用户权限相同:ug=,ugo= (有两个用户同时拥有可读、可写、或是可执行的权限时候,可以用这种办法)举例如下
Ug 属主和属组同时拥有读权限时 范例如下

[root@localhost/]# ls -ld dev (列出原有目录的权限)
d---------. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod ug=r dev (给目录文件的属主和属组添加读权限)[root@localhost /]# ls -ld devdr--r-----. 20 root root 3180 3月 10 16:50 dev ugo 属主和属组同时拥有读写执行权限时[root@localhost ~]# ls -ld /dev (列出目录文件原有的权限)d---------. 20 root root 3180 3月 10 16:50 /dev[root@localhost ~]# chmod ugo=rwx /dev (给属主、属组、其它 加上读写执行权限)[root@localhost ~]# ls -ld /devdrwxrwxrwx. 20 root root 3180 3月 10 16:50 /dev

(3)不同类的用户权限不同:u=,g=,o=
授权表示法:操作一类用户一位或多位权限;
u+
[root@localhost/]# ls -ld dev (列出目录文件原有的权限)
d---------. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod u+r dev (给属主添加读权限)[root@localhost /]# ls -ld devdr--------. 20 root root 3180 3月 10 16:50 dev u- [root@localhost/]# ls -ld dev (列出目录文件原有的权限)
dr--------. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod u-r dev (给属主去掉读权限)[root@localhost /]# ls -ld devd---------. 20 root root 3180 3月 10 16:50 dev g+
[root@localhost/]# ls -ld dev (列出目录文件原有的权限)
d---------. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod g+r dev (给属组添加读权限) [root@localhost /]# ls -ld devd---r-----. 20 root root 3180 3月 10 16:50 dev g- [root@localhost/]# ls -ld dev (列出目录文件原有的权限)d---r-----. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod g-r dev (给属组去掉读权限)[root@localhost /]# ls -ld devd---------. 20 root root 3180 3月 10 16:50 dev o+
[root@localhost/]# ls -ld dev (列出目录文件原有的权限)
d---------. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod o+rwx dev (给它用户添加读写执行权限)[root@localhost /]# ls -ld devd------rwx. 20 root root 3180 3月 10 16:50 dev o- [root@localhost/]# ls -ld dev (列出目录文件原有的权限)
d------rwx. 20 root root 3180 3月 10 16:50 dev[root@localhost /]# chmod o-rwx dev (给它用户去掉读写执行权限)[root@localhost /]# ls -ld devd---------. 20 root root 3180 3月 10 16:50 dev
a+
[root@localhost /]# ls -ld dev (列出目录文件原有的权限)
d---------. 20 root root 3180 3月 10 16:50 dev
[root@localhost /]# chmod a+r dev (给所有用户添加读权限)
[root@localhost /]# ls -ld dev
dr--r--r--. 20 root root 3180 3月 10 16:50 dev
a-[root@localhost /]# ls -ld dev (列出目录文件原有的权限)
dr--r--r--. 20 root root 3180 3月 10 16:50 dev
[root@localhost /]# chmod a-r dev (给所有用户去掉读权限)
[root@localhost /]# ls -ld dev
d---------. 20 root root 3180 3月 10 16:50 dev

4两类用户权限授权机制:ug+,ug-, ... (指的时两类用户同时拥有可读可写可执行权限)

ug+ (同时给属主、属组添加权限)范例如下
[root@localhost /]# ls -ld dev (列出目录文件原有的权限)
d---------. 20 root root 3180 3月 10 16:50 dev
[root@localhost /]# chmod ug+r dev (给属主和属组添加读权限)
[root@localhost /]# ls -ld dev
dr--r-----. 20 root root 3180 3月 10 16:50 dev
ug-
[root@localhost /]# ls -ld dev (列出目录文件原有的权限)

dr--r-----. 20 root root 3180 3月 10 16:50 dev
[root@localhost /]# chmod ug-r dev (给属主和属组去掉读权限)
[root@localhost /]# ls -ld dev
d---------. 20 root root 3180 3月 10 16:50 dev

(5)不同类的用户权限不同:u+,g+,o+ (同时给属主属主其它用户添加读写执行权限)范例如下:
[root@localhost/]# ls -ld dev (列出目录文件原有的权限)
d---------. 20root root 3180 3月 1016:50 dev
[root@localhost/]# chmod u+rwx,g+rwx,o+rwx dev (给属主,属组、其它用户添加可读可写可执行权限)
[root@localhost/]# ls -ld dev
drwxrwxrwx. 20 root root 3180 3 10 16:50 dev

(6) chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]...--reference=RFILE FILE...
--reference=RFILE:RFILE表示参考其权限模型;
范例如下:
[root@localhost/]# ls -l
-rw-rw-r--. 1 root root 541 3月 1009:05 fstab
[root@localhost/]# chmod - -reference=fstab li
[root@localhost/]# ls -l
-rw-rw-r--. 1 root root 594 3月 1009:00 li

chmod常用选项:
-R, --recursive:递归修改;将目录文件和目录文件下的文件都改成700.[root@localhost/]# chmod -R 700 /tmp
[root@localhost/]# ls -ld /tmp
drwx------. 7 rootroot 4096 3月 1021:24 /tmp
[root@localhost/]# ls -l /tmp
总用量 8
-rwx------. 1 rootroot 827 3月 1008:29 ks-script-AzR9EI
-rwx------. 1 rootroot 42 3月 10 09:46which.out
-rwx------. 1 rootroot 0 3月 10 08:17yum.log

chown命令:
chown [OPTION]...[OWNER][:[GROUP]] FILE... 既能更改文件的属主又能更改文件的属组
更改文件的属主:

[root@localhosttmp]# ls –l (列出原有文件的属主或是属组)
-rwx------. 1 wen wen 42 3月 10 09:46 which.out
[root@localhosttmp]# chown wen:root which.out (更改文件which.out的属主)
[root@localhost tmp]# ls -l
-rwx------. 1 wen root 42 3月 10 09:46 which.out

2.chown[OPTION]... --reference=RFILE FILE... (根据参考文件进行修改属主属组)[root@localhost tmp]# ls -l
总用量 8
-rwx------. 1 root root 827 3月 10 08:29 ks-script-AzR9EI
-rwx------. 1 wen root 42 3月 10 09:46 which.out
-rwx------. 1 root root 0 3月 10 08:17 yum.log
[root@localhost tmp]# chown--reference=ks-script-AzR9EI which.out (仿照ks-script-AzR9EI文件修改which.out)
[root@localhost tmp]# ls -ld which.out
-rwx------. 1 root root 42 3月 10 09:46 which.out
常用选项:-R, --recursive:递归修改;范例如下

3.chgrp命令: chgrp[OPTION]... GROUP FILE... (只能更改文件的属组)范例如下
[root@localhost tmp]# ls -l
-rwx------. 1 root root 42 3月 10 09:46 which.out
[root@localhosttmp]# chgrp magege which.out (修改文件which.out的属组为magege)
[root@localhost tmp]# ls -l
-rwx------. 1 root magege 42 3月 10 09:46 which.out
chgrp[OPTION]... --reference=RFILE FILE...

4. umask:显示或设定文件模式掩码

(1)显示当前系统默认的umask
[root@localhost tmp]# umask0022 系统默认为:0022表示特殊权限、所有者权限、所有组权限、其他人权限 (2)更改默认设置位置的地方,配置文件为 /etc/login.defe# The permission mask is initialized to this value. If not specified, # the permission mask will be initialized to 022.UMASK 077 文件:666-umask目录:777-umask
注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;
设定:umask MASK注意:此设定仅对当前shell进程有效;三、以上就是用户和组的管理以及用户和权限管理的管理了,再加再励,希望在马哥的带领下,一路狂奔,让自己的技术有更快的提升。

本文出自 “李文明的博客” 博客,请务必保留此出处http://liwenming18.blog.51cto.com/11068518/1749767
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: