码迷,mamicode.com
首页 > 系统相关 > 详细

马哥面试总结-Linux用户、组和权限

时间:2016-08-02 17:18:15      阅读:671      评论:0      收藏:0      [点我收藏+]

标签:windows   管理员   用户名   linux   守护   

用户user

  Linux 用户:Username/UID

管理员:root, 0

普通用户:1-65535

系统用户:1-499 CentO 6 , 1-999 (CentO 7 ) 对守护进程获取资源进行权限分配

登录用户:500 CENTOS6 +, 1000+

    交互式登录

备注:系统识别用户是看ID不是看名字的,(离职一个员工,可以账户暂停使用,新员工来了,直接更改账户名)


group

  1. Linux 组:Groupname/GID

  2. 管理员组:root, 0

  3. 普通组:

         系统组:1-499, 1-999

                      普通组:500+, 1000+

其他备注:windows里面新建的组或者用户,不能和已存在的用户和组同名

          Linux里面用户和组可以同名,ID也可以重复,Linux创建用户时,会默认创建一个同名的组


组的类别

Linux 组的类别:

用户的主要组( 主组)

用户必须属于一个且只有一个主组

组名同用户名,且仅包含一个用户:私有组

用户的附加组( 辅助组)secondary group

一个用户可以属于零个或多个辅助组

技术分享


用户和组的配置文件

Linux 用户和组的主要配置文件:

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

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

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

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

备注:这几个文件只有root管理员可以访问

Passwd文件格式

技术分享

以“:”分开,每个代表的意义

  1. login name :登录用名(root 

  2. passwd :密码 (x)

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

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

  5. GECOS :用户全名或注释

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

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

shadow 文件格式

技术分享

备注:“:”分开

  1. 登录用名

  2. 用户密码: 一般用sha512 加密

  3. 1970 1 1 日起到密码最近一次被更改的时间

  4. 密码再过几天可以被变更(0 表示随时可被变更)

  5. 密码再过几天必须被变更(99999 表示永不过期)

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

  7. 密码过期几天后帐号会被锁定

  8. 1970 1 1 日算起,多少天后帐号失效。


group文件格式

  1. 群组名称:就是群组名称

  2. 群组密码:通常不需要设定,密码是被记录在

    /etc/gshadow

  3. GID :就是群组的 ID

  4. 以当前组为附加组的用户列表( 分隔符为逗号)


gshdow文件格式

  1. 群组名称:就是群组名称

  2. 群组密码:

  3. 组管理员列表:组管理员的列表,更改组密码和成员

  4. 以当前组为附加组的用户列表:( 分隔符为逗号)

用户和组管理命令

 

  1. 用户管理命令

  2. a)        useradd

  3. b)        usermod

  4. c)        userdel

  5. 组帐号维护命令

  6. a)        groupadd

  7. b)        groupmod

  8. c)        groupdel

用户创建:useradd

useradd [options] LOGIN

a)      -u  UID : [UID_MIN, UID_MAX] 定义在/etc/login.defs
b)        -o  配合-u  选项,不检查UID 的唯一性
-g GID :指明用户所属基本组,可为组名,也可以GID
-c  "COMMENT" :用户的注释信息
-d  HOME_DIR: 以指定的路径( 不存在) 为家目录
-s  SHELL : 指明用户的默认shell 程序
i.             可用列表在/etc/shells 文件中
-G  GROUP1[,GROUP2,...] :为用户指明附加组,组必须事先存在
-N  不创建私用组做主组,使用users 组做主组
-r:  创建系统用户 CentOS 6:ID<500 ,CentOS 7: ID<1000


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

显示或更改默认设置:

 useradd -D
useradd –D -s SHELL


新建用户的相关文件和命令


  1. /etc/default/useradd

  2. /etc/skel/*

  3. /etc/login.defs

  4. newusers passwd 格式文件 批量创建用户

  5. chpasswd 批量修改用户口令

#批量创建用户,密码,家目录

[root@localhost etc]#  vi user.txt
[root@localhost etc]#  newusers user.txt
[root@localhost etc]#  cat /etc/passwd
[root@localhost etc]#  vi p.txt
[root@localhost etc]#  cat p.txt | chpasswd
[root@localhost etc]#  cd /etc/


用户属性修改

usermod [OPTION] login

-u UID:  新UID
-g GID:  新基本组
-GGROUP1[,GROUP2,...[,GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a 选项,表示append;;
-s SHELL :新的默认SHELL; ;
-c ‘COMMENT‘ :新的注释信息;
-d HOME:  新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m 选项
-l login_name:  新的名字;
-L: lock 指定用户, 在/etc/shadow  密码栏的增加 !
-U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 !  拿掉
-e YYYY-MM-DD:  指明用户账号过期日期;
-f INACTIVE:  设定非活动期限;

删除用户

userdel [OPTION]... login

     -r:  删除用户家目录;

查看用户相关的ID 信息

id [OPTION]... [USER]

a)        -u: UID

b)        -g: GID

c)        -G: Groups

d)        -n: Name


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

  1. su [options...] [-] [user[args...]]

  2. 切换用户的方式:

  3. a)        su UserName :非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

  4. b)        su - UserName :登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

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

  6. 换个身份执行命令:

  7. a)        su [-] UserName -c ‘COMMAND‘     #su root –c cat/etc/passwd

  8. b)        选项:-l --login

  9. c)        su -l UserName 相当于 su – UserName


设置密码

  1. passwd [OPTIONS] UserName:  修改指定用户的密码,仅root 用户权限

  2. passwd:  修改自己的密码;

  3. 常用选项:

  4. a)        -l: 锁定指定用户

  5. b)        -u: 解锁指定用户

  6. c)        -e: 强制用户下次登录修改密码

  7. d)        -n mindays:  指定最短使用期限

  8. e)        -x maxdays :最大使用期限

  9. f)         -w warndays :提前多少天开始警告

  10. g)        -i inactivedays :非活动期限;

  11. h)        --stdin :从标准输入接收用户密码;

i.             echo " PASSWORD " |passwd --stdin USERNAME


修改用户密码策略

  1. chage [OPTION]... LOGIN

  2. a)        -d LAST_DAY

  3. b)        -E, --expiredate EXPIRE_DATE

  4. c)        -I, --inactive INACTIVE

  5. d)        -m, --mindays MIN_DAYS

  6. e)        -M, --maxdays MAX_DAYS

  7. f)         -W, --warndays WARN_DAYS

  8. g)        -l ,显示密码策略

  9. 下一次登录强制重设密码

  10. a)        chage -d 0 tom

  11. chage -m 0 –M 42 –W 14 –I 7 tom

  12. chage -E 2016-09-10 tom



更改新用户创建时候默认需要的信息(家目录、登录shell、邮箱)

创建组

  1. groupadd [OPTION]... group_name

  2. a)        -g GID:  指明GID 号;[GID_MIN,GID_MAX]

  3. b)        -r:  创建系统组;

i.             CentOS 6: ID<500

ii.             CentOS 7: ID<1000



6.29、修改和删除组

  1. 组属性修改:groupmod

  2. groupmod [OPTION]... group

  3. a)        -n group_name:  新名字

  4. b)        -g GID:  新的GID

  5. 组删除:groupdel

groupdel GROUP


6.30、更改组密码

  1. 组密码:gpasswd

  2. gpasswd [OPTION] GROUP

  3. a)        -a user:  user 添加至指定组中;

  4. b)        -d user:  从指定组中移除用户user

  5. c)        -A user1,user2,...:  设置有管理权限的用户列表

  6. newgrp 命令:临时切换基本组;

  7. a)        如果用户本不属于此组,则需要组密码



6.31、更改和查看组成员

  1. groupmems [options] [action]

  2. options

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

  4. Actions:

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

  6. b)        -d, --delete username 从组中删除用户

  7. c)        -p, --purge 从组中清除所有成员

  8. d)        -l, --list 显示组成员列表

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

6.32、文件权限

  1. 文件属性

技术分享

  1. 文件属性操作

  2. a)        chown  设置文件的所有者

  3. b)        chgrp  设置文件的属组信息


6.33、修改文件的属主和属组

 

  1. 修改文件的属主:chown

  2. a)        chown [OPTION]...[OWNER][:[GROUP]] FILE...

  3. 用法:

  4. a)        OWNER

  5. b)        OWNER:GROUP

  6. c)        :GROUP

  7. d)        命令中的冒号可用. 替换;

  8. e)        -R:  递归

  9. f)         chown [OPTION]...--reference=RFILE FILE...

  10. 修改文件的属组:chgrp

  11. a)        chgrp [OPTION]... GROUP FILE...

  12. b)        chgrp [OPTION]...--reference=RFILE FILE...

  13. c)        -R  递归



6.34、文件权限

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

  2. a)        owner:  属主, u

  3. b)        group:  属组, g

  4. c)        other:  其他, o

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

  6. a)        r: Readable

  7. b)        w: Writable

  8. c)        x: eXcutable

  9. 文件:

  10. a)        r:  可使用文件查看类工具获取其内容

  11. b)        w:  可修改其内容

  12. c)        x:  可以把此文件提请内核启动为一个进程

  13. 目录:

  14. a)        r:  可以使用ls 查看此目录中文件列表

  15. b)        w:  可在此目录中创建文件,也可删除此目录中的文件

  16. c)        x:  可以使用ls -l 查看此目录中文件列表,可以cd进入此目录

  17. d)        X: 给目录x 权限,不给文件x

    35、文件权限操作

文件权限(文件权限(rwx|X

技术分享文件权限操作命令

chmod

6.36、八进制数字

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

例如:

640: rw-r-----

rwxr-xr-x: 755

 

6.37、修改文件权限

  1. chmod [OPTION]... OCTAL-MODEFILE...

  2. a)        -R:  递归修改权限

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

  4. a)        MODE

  5. b)        修改一类用户的所有权限:

i.             u= g= o= ug= a= u=,g=

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

i.             u+ u- g+ g- o+ o- a+ a- + -

  1. chmod [OPTION]...--reference=RFILE FILE...

  2. a)        参考RFILE 文件的权限,将FILE 的修改为同RFILE

  3. 38、权限设置

  4. chgrp sales testfile

  5. chown root:admins testfile

  6. chmod u+wx,g-r,o=rx file

  7. chmod -R g+rwX /testdir

  8. chmod 600 file

  9. chown mage testfile

  10. 39、新建文件和目录的默认权限

  11. umask   可以用来保留在创建文件权限

  12. 新建FILE 权限: 666-umask

  13. a)        如果所得结果某位存在执行(奇数)权限,则将其权限+1

  14. 新建DIR 权限: 777-umask

  15. 非特权用户umask 002

  16. root umask 022

  17. umask:  查看

  18. umask #:  设定

  19. umask 002

  20. umask –S  模式方式显示

  21. umask –p  输出可被调用

  22. 全局设置: /etc/bashrc  用户设置:~/.bashrc

  23. 40、练习

  24. 当用户xiaoming /testdir  目录无执行权限时,意味着无法做哪些操作?

  25. 当用户xiaoqiang /testdir  目录无读权限时,意味着无法做哪些操作?

  26. 当用户wangcai  /testdir  目录无写权限时,该目录下的只读文件file1是否可修改和删除?

  27. 复制/etc/fstab 文件到/var/tmp 下,设置文件所有者为wangcai 读写权限,所属组为sysadmins 组有读写权限,其他人无权限

  28. 误删除了用户wangcai 的家目录,请重建并恢复该用户家目录

  29. 及相应的权限属性

 

6.41Linux 文件系统上的特殊权限

SUID, SGID, Sticky

  1. 三种常用权限:r, w, x user, group, other

  2. 安全上下文

  3. 前提:进程有属主和属组;文件有属主和属组

(1)       任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

  1. (2)  启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组

  2. (3)  进程访问文件时的权限,取决于进程的发起者

(a)      进程的发起者,同文件的属主:则应用文件属主权限

(b)      进程的发起者,属于文件属组;则应用文件属组权限

(c)       应用文件“其它”权限

6.42、可执行文件上SUID 权限

  1. 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

  2. 启动为进程之后,其进程的属主为原程序文件的属主

  3. SUID 只对二进制可执行程序有效

  4. SUID 设置在目录上无意义

  5. 权限设定:

  6. a)        chmod u+s FILE...

  7. b)        chmod u-s FILE...

  8. 43、可执行文件上SGID

  9. 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

  10. 启动为进程之后,其进程的属主为原程序文件的属组

  11. 权限设定:

  12. a)        chmod g+s FILE...

  13. b)        chmod g-s FILE...

  14. 默认情况下,用户创建文件时,其属组为此用户所属的

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

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

  17. 通常用于创建一个协作目录

  18. 权限设定:

  19. a)        chmod g+s DIR...

  20. b)        chmod g-s DIR...

  21. 44Sticky

  22. 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

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

  24. sticky  设置在文件上无意义

  25. 权限设定:

  26. a)        chmod o+t DIR...

  27. b)        chmod o-t DIR...

  28. 例如:

  29. a)        ls -ld /tmp

  30. b)        drwxrwxrwt 12 root root 4096Nov 2 15:44 /tmp

 

6.45、特殊权限数字法

  1. SUID SGID STICKY

  2. a)        000 0

  3. b)        001 1

  4. c)        010 2

  5. d)        011 3

  6. e)        100 4

  7. f)         101 5

  8. g)        110 6

  9. h)        111 7

  10. chmod 4777 /tmp/a.txt

 

6.46、权限位映射

  1. SUID: user, 占据属主的执行权限位

  2. a)        s:  属主拥有x 权限

  3. b)        S :属主没有x 权限

  4. SGID: group, 占据属组的执行权限位

  5. a)        s: group 拥有x 权限

  6. b)        S group 没有x 权限

  7. Sticky: other, 占据other 的执行权限位

  8. a)        t: other 拥有x 权限

  9. b)        T other 没有x

  10. 47、设定文件特定属性

  11. chattr +i  不能删除,改名,更改

  12. chattr +a  只能增加

  13. lsattr 显示特定属性

  14. 48、访问控制列表

  15. ACL AccessControl List ,实现灵活的权限管理

  16. 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

  17. CentOS7.0 默认创建的xfs ext4 文件系统有ACL 功能。

  18. CentOS7.X 之前版本,默认手工创建的ext4文件系统无ACL功能。需手动增加:

  19. a)        tune2fs –o acl /dev/sdb1

  20. b)        mount –o acl /dev/sdb1 /mnt

  21. ACL 生效 顺序:所有者,自定义用户,自定义组,其他人

  22. 为多用户或者组的文件和目录赋予访问权限rwx

  23.   mount -o acl /directory

  24.   getfacl file |directory

  25.   setfacl -m u:wang:rwx file|directory

  26.   setfacl -Rm g:sales:rwX directory

  27.   setfacl -M file.acl file|directory

  28.   setfacl -m g:salesgroup:rw file| directory

  29.   setfacl -m d:u:wang:rx directory

  30.   setfacl -x u:wang file |directory

  31.   setfacl -X file.acl directory

  32. ACL 文件上的group 权限是mask  值(自定义用户,自定义组,拥有组的最大权限), 而非传统的组权限

  33. getfacl 可看到特殊权限:flags

  34. 默认ACL 权限给了x ,文件也不会继承x 权限。

  35. base ACL  不能删除

  36. setfacl -k dir  删除默认ACL 权限

  37. setfacl -b file1 清除所有ACL 权限

  38. getfacl file1 | setfacl--set-file=- file2 复制file1acl 权限给file2

  39. mask 只影响除所有者和other的之外的人和组的最大权限

  40. Mask 需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)

  41. 用户或组的设置必须存在于mask 权限设定范围内才会 生效。

  42. setfacl -m mask::rx file

  43. --set 选项会把原有的ACL 项都删除,用新的替代,需要注意的是一定要包含UGO 的设置,不能象-m 一样只是添加ACL 就可以.

  44. 如:

  45. setfacl --setu::rw,u:wang:rw,g::r,o::- file1

  46. 备份和恢复ACL

  47. 主要的文件操作命令cp mv 都支持ACL ,只是cp 命令需要加上-p  参数。但是tar 等常见的备份工具是不会保留目录和文件的ACL 信息

  48. a)        #getfacl -R /tmp/dir1 >acl.txt

  49. b)        #setfacl -R -b /tmp/dir1

  50. c)        #setfacl -R --set-file=acl.txt/tmp/dir1

  51. d)        #getfacl -R /tmp/dir1

  52. 问题:

/data/testdir 里创建的新文件自动属于g1 组,组g2 的成员如:alice 能对这些新文件有读写权限,组g3 的成员如:tom 只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。





安全上下文

进程所能够访问资源的权限取决于进程的运行者的身份

备注:执行一个文件的时候,能不能执行,取决于文件属性里面用户有没有执行权限


密码加密

加密机制:
a)        加密:明文-->  密文
b)        解密:密文-->  明文
单向加密:哈希算法,原文不同,密文必不同
a)        相同算法定长输出,获得密文不可逆推出原始数据
b)        雪崩效应:初始条件的微小改变,引起结果的巨大改变
c)        md5: message digest, 128bits
d)        sha1: secure hash algorithm,160bits
e)        sha224: 224bits
f)         sha256: 256bits
g)        sha384: 384bits
h)        sha512: 512bits
更改加密算法 authconfig --passalgo=sha256 – update


#修改以后新建密码的加密方式


密码的复杂性策略

  1. 使用数字、大写字母、小写字母及特殊字符中至少3

  2. 足够长

  3. 使用随机密码

  4. 定期更换;不要使用最近曾经使用过的密码

#生存随机密码

技术分享







本文出自 “家住海边喜欢浪” 博客,请务必保留此出处http://zhang789.blog.51cto.com/11045979/1833523

马哥面试总结-Linux用户、组和权限

标签:windows   管理员   用户名   linux   守护   

原文地址:http://zhang789.blog.51cto.com/11045979/1833523

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