linux用户和组及权限管理
1、用户和组管理
资源分派:
Authentication:认证
Authorization:授权
Accouting:审计
Audition
token, identity(username/password)
Linux用户:Username/UID
管理员:root, 0
普通用户:1-65535
系统用户:1-499, 1-999
对守护进程获取资源进行权限分配;
登录用户:500+, 1000+
交互式登录;
Linux组:Groupname/GID
管理员组:root, 0
普通组:
系统组:1-499, 1-999
普通组:500+, 1000+
Linux安全上下文:
运行中的程序:进程 (process)
以进程发起者的身份运行:
root: cat
tom: cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份;
[root@master ~]# cat /etc/shadow root:$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: sync:*:15980:0:99999:7::: shutdown:*:15980:0:99999:7::: halt:*:15980:0:99999:7::: mail:*:15980:0:99999:7::: uucp:*:15980:0:99999:7::: operator:*:15980:0:99999:7::: games:*:15980:0:99999:7::: gopher:*:15980:0:99999:7::: ftp:*:15980:0:99999:7::: nobody:*:15980:0:99999:7::: dbus:!!:16462:::::: usbmuxd:!!:16462:::::: vcsa:!!:16462:::::: rtkit:!!:16462:::::: avahi-autoipd:!!:16462:::::: abrt:!!:16462:::::: haldaemon:!!:16462:::::: gdm:!!:16462:::::: ntp:!!:16462:::::: apache:!!:16462:::::: saslauth:!!:16462:::::: postfix:!!:16462:::::: pulse:!!:16462:::::: sshd:!!:16462:::::: tcpdump:!!:16462:::::: hadoop:$1$3OZ63WMX$N52Tt.TGFAiLWhUanptvm0:16465:0:99999:7::: zhangshan:$1$FK4i3MR7$2Y1.Ttnht8wK88cBx3GHK0:16576:0:99999:7:::
[root@master ~]# su - hadoop
[hadoop@master ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied
Linux组的类别:
用户的基本组(主组):
组名同用户名,且仅包含一个用户:私有组
用户的附加组(额外组):
Linux用户和组相关的配置文件:
/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
[root@master ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin hadoop:x:500:500:cloud1:/home/hadoop:/bin/bash zhangshan:x:501:503::/home/zhangshan:/bin/bash
查看passwd在哪里
[root@master ~]# whatis passwd passwd (1) - update user‘s authentication tokens passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes
man 5 passwd
格式为: account:password:UID:GID:GECOS:directory:shell
用户:密码(x):用户Id:用户组Id:注释:用户家目录:shell
查看centos版本
[root@master ~]# cat /etc/centos-release CentOS release 6.6 (Final)
/etc/group:组及其属性信息;
[root@master ~]# cat /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: dbus:x:81: usbmuxd:x:113: utmp:x:22: utempter:x:35: desktop_admin_r:x:499: desktop_user_r:x:498: floppy:x:19: vcsa:x:69: rtkit:x:497: avahi-autoipd:x:170: abrt:x:173: cdrom:x:11: tape:x:33: dialout:x:18: haldaemon:x:68:haldaemon gdm:x:42: ntp:x:38: apache:x:48: saslauth:x:76: postdrop:x:90: postfix:x:89: wbpriv:x:88: pulse:x:496: pulse-access:x:495: fuse:x:494: sshd:x:74: tcpdump:x:72: stapusr:x:156: stapsys:x:157: stapdev:x:158: slocate:x:21: hadoop:x:500: d1:x:501: d2:x:502: zhangshan:x:503:
[root@master ~]# whatis group group (5) - user group file group.conf [group] (5) - configuration file for the pam_group module
[root@master ~]# man 5 group
group_name:passwd:GID:user_list
解释:
组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
/etc/shadow:用户密码及其相关属性;
/etc/gshadow:组密码及其相关属性;
/etc/passwd:
name:password:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID:GECOS:主目录:默认shell
/etc/group:
group_name:password:GID:user_list
组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
/etc/shadow (:分开 9个字段)
用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
[root@master ~]# ls -l /etc/shadow ---------- 1 root root 887 5月 21 2015 /etc/shadow
[root@master ~]# cat /etc/shadow root:$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: sync:*:15980:0:99999:7::: shutdown:*:15980:0:99999:7::: halt:*:15980:0:99999:7::: mail:*:15980:0:99999:7::: uucp:*:15980:0:99999:7::: operator:*:15980:0:99999:7::: games:*:15980:0:99999:7::: gopher:*:15980:0:99999:7::: ftp:*:15980:0:99999:7::: nobody:*:15980:0:99999:7::: dbus:!!:16462:::::: usbmuxd:!!:16462:::::: vcsa:!!:16462:::::: rtkit:!!:16462:::::: avahi-autoipd:!!:16462:::::: abrt:!!:16462:::::: haldaemon:!!:16462:::::: gdm:!!:16462:::::: ntp:!!:16462:::::: apache:!!:16462:::::: saslauth:!!:16462:::::: postfix:!!:16462:::::: pulse:!!:16462:::::: sshd:!!:16462:::::: tcpdump:!!:16462:::::: hadoop:$1$3OZ63WMX$N52Tt.TGFAiLWhUanptvm0:16465:0:99999:7::: zhangshan:$1$FK4i3MR7$2Y1.Ttnht8wK88cBx3GHK0:16576:0:99999:7:::
加密机制:
加密:明文--> 密文
解密:密文--> 明文
比如给/tmp/a.txt 加密MD5
[root@master ~]# md5sum /tmp/a.txt c1628aa5555458cf3f93b1bffadc2991 /tmp/a.txt
[root@master ~]# md5sum /tmp/a.txt c1628aa5555458cf3f93b1bffadc2991 /tmp/a.txt
[root@master ~]# sha1sum /tmp/a.txt 93923d473f19047e73a2e9b3d8916464d9f49da0 /tmp/a.txt
[root@master ~]# sha1sum /tmp/a.txt 93923d473f19047e73a2e9b3d8916464d9f49da0 /tmp/a.txt
[root@master ~]# sha384sum /tmp/a.txt f9945a2214cf089c36af28118b92763687b706fbca12e37ced5cbc5955158ab06273077d7fb923d12b1668f486f8be17 /tmp/a.txt
长度越来越长!还有好多用法呢
单向加密:提取数据指纹
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits 安全hash算法 1表示版本号
sha224: 224bits
sha256: 256bits
sha384: 384bits
sha512: 512bits
[root@master ~]# sha sha1sum sha224sum sha256sum sha384sum sha512sum
雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变;
定长输出:
密码的复杂性策略:
1、使用数字、大写字母、小写字母及特殊字符中至少3种;
2、足够长;
3、使用随机密码;
4、定期更换;不要使用最近曾经使用过的密码;
2、用户和组相关的管理命令:
用户创建:useradd
useradd [options] LOGIN
-u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
-g GID:指明用户所属基本组,可为组名,也可以GID;
-c "COMMENT":用户的注释信息;
-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
-G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
-r: 创建系统用户
CentOS 6: ID<500
CentOS 7: ID<1000
添加用户user1
[root@master ~]# useradd user1
[root@master ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin hadoop:x:500:500:cloud1:/home/hadoop:/bin/bash zhangshan:x:501:503::/home/zhangshan:/bin/bash user1:x:502:504::/home/user1:/bin/bash
[root@master ~]# cat /etc/shadow root:$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: sync:*:15980:0:99999:7::: shutdown:*:15980:0:99999:7::: halt:*:15980:0:99999:7::: mail:*:15980:0:99999:7::: uucp:*:15980:0:99999:7::: operator:*:15980:0:99999:7::: games:*:15980:0:99999:7::: gopher:*:15980:0:99999:7::: ftp:*:15980:0:99999:7::: nobody:*:15980:0:99999:7::: dbus:!!:16462:::::: usbmuxd:!!:16462:::::: vcsa:!!:16462:::::: rtkit:!!:16462:::::: avahi-autoipd:!!:16462:::::: abrt:!!:16462:::::: haldaemon:!!:16462:::::: gdm:!!:16462:::::: ntp:!!:16462:::::: apache:!!:16462:::::: saslauth:!!:16462:::::: postfix:!!:16462:::::: pulse:!!:16462:::::: sshd:!!:16462:::::: tcpdump:!!:16462:::::: hadoop:$1$zj8ykgay$VjEtLMr//31qW7fZ6KSS7/:16991:0:99999:7::: zhangshan:$1$FK4i3MR7$2Y1.Ttnht8wK88cBx3GHK0:16576:0:99999:7::: user1:!!:16991:0:99999:7:::
!!表示user1用户没有密码
[root@master ~]# cat /etc/login.defs # # Please note that the parameters in this configuration file control the # behavior of the tools from the shadow-utils component. None of these # tools uses the PAM mechanism, and the utilities that use PAM (such as the # passwd command) should therefore be configured elsewhere. Refer to # /etc/pam.d/system-auth for more information. # # *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence. # QMAIL_DIR is for Qmail # #QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #MAIL_FILE .mail # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 # # Min/max values for automatic uid selection in useradd # UID_MIN 500 UID_MAX 60000 # # Min/max values for automatic gid selection in groupadd # GID_MIN 500 GID_MAX 60000 # # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local # # If useradd should create home directories for users by default # On RH systems, we do. This option is overridden with the -m flag on # useradd command line. # CREATE_HOME yes # The permission mask is initialized to this value. If not specified, # the permission mask will be initialized to 022. UMASK 077 # This enables userdel to remove user groups if no members exist. # USERGROUPS_ENAB yes # Use SHA512 to encrypt password. ENCRYPT_METHOD MD5 MD5_CRYPT_ENAB yes
id的用法
[root@master ~]# id user2 uid=505(user2) gid=509(a) 组=509(a) 创建一个普通用户,默认都有自己家的环境变量!!!
[root@master ~]# ll -a /home/test1/ 总用量 28 drwx------ 4 test1 test1 4096 7月 9 08:00 . drwxr-xr-x. 11 root root 4096 7月 9 08:18 .. -rw-r--r-- 1 test1 test1 18 10月 16 2014 .bash_logout -rw-r--r-- 1 test1 test1 176 10月 16 2014 .bash_profile -rw-r--r-- 1 test1 test1 124 10月 16 2014 .bashrc drwxr-xr-x 2 test1 test1 4096 11月 11 2010 .gnome2 drwxr-xr-x 4 test1 test1 4096 1月 27 2015 .mozilla
指定用户家目录
[root@master ~]# useradd -d /wwwww usertest777 useradd: user ‘usertest777‘ already exists
[root@master ~]# ll -a /wwwww/ 总用量 28 drwx------ 4 usertest777 usertest777 4096 7月 9 08:22 . dr-xr-xr-x. 25 root root 4096 7月 9 08:22 .. -rw-r--r-- 1 usertest777 usertest777 18 10月 16 2014 .bash_logout -rw-r--r-- 1 usertest777 usertest777 176 10月 16 2014 .bash_profile -rw-r--r-- 1 usertest777 usertest777 124 10月 16 2014 .bashrc drwxr-xr-x 2 usertest777 usertest777 4096 11月 11 2010 .gnome2 drwxr-xr-x 4 usertest777 usertest777 4096 1月 27 2015 .mozilla
查看系统有多少种shell?
[root@master ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh
如果添加一个用户,它的环境变量是根据/etc/default/useradd配置文件生成的。默认是使用/bin/bash
shell的。
[root@master ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
我想设置中文,只对当前会话有效,可以使用类型 export a=b设置环境变量,要永久生效,要修改配置文件。
export LANG="zh_CN.UTF-8"
设置中文
默认值设定:/etc/default/useradd文件中
useradd -D
-s SHELL
练习:创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为"Gentoo Distribution";
组创建:groupadd
groupadd [OPTION]... group_name
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组;
CentOS 6: ID<500
CentOS 7: ID<1000
[root@master ~]# groupadd --help Usage: groupadd [options] GROUP Options: -f, --force exit successfully if the group already exists, and cancel -g if the GID is already used -g, --gid GID use GID for the new group -h, --help display this help message and exit -K, --key KEY=VALUE override /etc/login.defs defaults -o, --non-unique allow to create groups with duplicate (non-unique) GID -p, --password PASSWORD use this encrypted password for the new group -r, --system create a system account
下面创建2个组group1,group2,及创建一个用户test333,其附加组为,group1,group2
命令如下:
[root@master ~]# groupadd group1
[root@master ~]# groupadd group2
[root@master ~]# useradd test333 -G group1,group2
[root@master ~]# id test333 uid=510(test333) gid=516(test333) groups=516(test333),514(group1),515(group2)
[root@master ~]# useradd test444 -G group1,group2
[root@master ~]# id test444
uid=511(test444) gid=517(test444) groups=517(test444),514(group1),515(group2)
查看用户相关的ID信息:id
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: Name
[root@master ~]# id uid=0(root) gid=0(root) groups=0(root)
[root@master ~]# id test1 uid=65534(test1) gid=505(test1) groups=505(test1)
查看用户test1的UID号
[root@master ~]# id -u test1 65534
查看用户test1的GUID号
[root@master ~]# id -g test1 505
[root@master ~]# id -G test1
505
[root@master ~]# id -n -u test1
test1
切换用户或以其他用户身份执行命令:su
su [options...] [-] [user [args...]]
切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件;
su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;
[root@master ~]# [root@master ~]# su - test1 [test1@master ~]$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/java/jdk1.7.0_75/bin:/usr/local/zookeeper-3.4.6/bin:/usr/local/hadoop-2.6.0/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/test1/bin
环境变量没有/usr/local/sbin
[test1@master ~]$ exit
logout
[root@master ~]# su test1 [test1@master root]$ echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_75/bin:/usr/local/zookeeper-3.4.6/bin:/usr/local/hadoop-2.6.0/bin:/root/bin
环境变量有/usr/local/sbin
[test1@master root]$ ll
ls: cannot open directory .: Permission denied
Note:root su至其他用户无须密码;非root用户切换时需要密码;
换个身份执行命令:
用法: su [-] UserName -c ‘COMMAND‘
[root@master ~]# su - test1 -c ‘echo $PATH‘ /usr/local/bin:/bin:/usr/bin:/usr/java/jdk1.7.0_75/bin:/usr/local/zookeeper-3.4.6/bin:/usr/local/hadoop-2.6.0/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/test1/bin
没有切换用户直接执行命令了哦!!
选项:
-l:“su -l UserName”相当于“su - UserName”
用户属性修改:usermod
usermod [OPTION] login
-u UID: 新UID
-g GID: 新基本组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
-s SHELL:新的默认SHELL;
-c ‘COMMENT‘:新的注释信息;
-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
-l login_name: 新的名字;
-L: lock指定用户
-U: unlock指定用户
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限;
原来的的组被覆盖 直接用-G命令
[root@master ~]# id test444 uid=511(test444) gid=517(test444) groups=517(test444),514(group1),515(group2) [root@master ~]# groupadd a1 [root@master ~]# groupadd a2 [root@master ~]# usermod -G test444 a1 usermod: user ‘a1‘ does not exist [root@master ~]# usermod -G a1 test444 [root@master ~]# id test444 uid=511(test444) gid=517(test444) groups=517(test444),518(a1)
原来的组没有被覆盖 用命令 -a -G
[root@master ~]# id test444 uid=511(test444) gid=517(test444) groups=517(test444),518(a1)
[root@master ~]# usermod -G -a a2 test444
usermod: group ‘-a‘ does not exist //不能这样写 一定要注意哦
[root@master ~]# usermod -a -G a2 test444 [root@master ~]# id test444 uid=511(test444) gid=517(test444) groups=517(test444),518(a1),519(a2)
锁定用户前面有!$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462 有感叹号
[root@master ~]# usermod -L root
[root@master ~]#
[root@master ~]# head -1 /etc/shadow
root:!$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462:0:99999:7:::
解锁指定用户及解锁用户
[root@master ~]# usermod -L root //锁定用户 [root@master ~]# usermod -U root //解锁用户 [root@master ~]# head -1 /etc/shadowroot:$1$ndbJNNw1$wzeo35ykfH5PoedLjOzxS0:16462:0:99999:7:::
注意锁定用户,当前session可以执行,通过其他终端的用户不能登录,如果退出了,就不能登录了,尤其对root用户而言,不要锁定root用户,然后退出。不然你就悲剧了!
给用户添加密码:passwd
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w
warndays] [-i inactivedays] [-S] [--stdin] [username]
passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
passwd: 修改自己的密码;
常用选项:
-l: 锁定指定用户
-u: 解锁指定用户
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限;
--stdin:从标准输入接收用户密码;
echo "PASSWORD" | passwd --stdin USERNAME
Note: /dev/null, bit buckets 黑洞
/dev/zero,
可以这样设置密码
[root@master ~]# echo 123 | passwd --stdin test1 Changing password for user test1. passwd: all authentication tokens updated successfully.
不想显示信息可以这样
[root@master ~]# echo 123 | passwd --stdin test1 &> /dev/null [root@master ~]#
删除用户:userdel
userdel [OPTION]... login
-r: 删除用户家目录;
组属性修改:groupmod
groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID;
组删除:groupdel
groupdel GROUP
组密码:gpasswd
gpasswd [OPTION] GROUP
-a user: 将user添加至指定组中;
-d user: 删除用户user的以当前组为组名的附加组
-A user1,user2,...: 设置有管理权限的用户列表
newgrp命令:临时切换基本组;
如果用户本不属于此组,则需要组密码;
修改用户属性:chage
chage [OPTION]... LOGIN
-d LAST_DAY
-E, --expiredate EXPIRE_DATE
-I, --inactive INACTIVE
-m, --mindays MIN_DAYS
-M, --maxdays MAX_DAYS
-W, --warndays WARN_DAYS
其它命令:chfn, chsh, finger
命令总结:useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn, finger
3、权限管理:
文件的权限主要针对三类对象进行定义:
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限:
r: Readable
w: Writable
x: eXcutable
文件:
r: 可使用文件查看类工具获取其内容;
w: 可修改其内容;
x: 可以把此文件提请内核启动为一个进程;
目录:
r: 可以使用ls查看此目录中文件列表;
w: 可在此目录中创建文件,也可删除此目录中的文件;
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录;
创建目录,目录有执行权限
[root@master ~]# mkdir tttt drwxr-xr-x 2 root root 4096 Jul 9 20:45 tttt
创建一个文件,默认没有执行权限
[root@master ~]# touch aa [root@master ~]# ll aa -rw-r--r-- 1 root root 0 Jul 9 20:47 aa
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
--- 000 0
--x 001 1
-w- 010 2
-wx 011
r-- 100
r-x 101
rx- 110
rwx 111
例如:
640: rw-r-----
rwxr-xr-x: 755
修改文件权限:chmod
chmod [OPTION]... OCTAL-MODE FILE...
-R: 递归修改权限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
修改一类用户的所有权限:
u=
g=
o=
ug=
a=
u=,g=
修改一类用户某位或某些位权限
u+
u-
chmod [OPTION]... --reference=RFILE FILE...
参考RFILE文件的权限,将FILE的修改为同RFILE;
chmod命令的用法,大概有如下几个方面:我就不一一解释了。
[root@master ~]# chmod 777 a.txt [root@master ~]# chmod u-x,o-w,o-x a.txt [root@master ~]# ll a.txt -rw-rwxr-- 1 root root 2456 Jul 6 06:54 a.txt [root@master ~]# chmod u-x,u-r,u-x,o-w,o-x,o-r a.txt [root@master ~]# ll a.txt --w-rwx--- 1 root root 2456 Jul 6 06:54 a.txt [root@master ~]# chmod u-x,u-r,u-w,o-w,o-x,o-r a.txt [root@master ~]# ll a.txt ----rwx--- 1 root root 2456 Jul 6 06:54 a.txt
如果给一个文件添加执行权限(包括用户、用户组、其他组)
[root@master ~]# chmod +x a.txt 或者: [root@master ~]# chmod a+x a.txt
[root@master ~]# [root@master ~]# ll a.txt ---xrwx--x 1 root root 2456 Jul 6 06:54 a.txt
修改文件的属主和属组:
仅root可用;
修改文件的属主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
OWNER
OWNER:GROUP
:GROUP
Note: 命令中的冒号可用.替换;
-R: 递归
chown [OPTION]... --reference=RFILE FILE...
修改文件的属组:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R
文件或目录创建时的遮罩码:umask
FILE: 666-umask
Note: 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1
DIR: 777-umask
umask: 查看
umask #: 设定
命令总结:chmod, chown, chgrp, umask
总结:linux用户组及权限管理非常重要,一定要好好总结及学习哦
本文出自 “梁小明的博客” 博客,请务必保留此出处http://7038006.blog.51cto.com/7028006/1817317
原文地址:http://7038006.blog.51cto.com/7028006/1817317