centos7用户,组及文件权限管理
问候短信centos7⽤户,组及⽂件权限管理
centos7安装过程中如果没有创建⽤户的话,默认只有ROOT⽤户,这个⽤户是具有最⾼权限的帐户,可以做任何事情,但实际⽣产环境中我们⼀般不会使⽤这个⽤户,因为权限太⼤了,很危险。
所以在⽣产环境中就要创建⼀个或多个⽤户帐户,分配合适的权限来使⽤,⽤过windows的都知道,windows也是多⽤户,多任务的操作系统,每个⽤户也都有配置⽂件,⽤来定义和保存⽤户的环境变量,包括⽤户的家⽬录,桌⾯等的配置。那么linux同样也是多⽤户,多任务操作系统,同样可以创建多个⽤户,定义每个⽤户的所属组,家⽬录,登录的shell,邮件等等环境变量。
在centos7中和⽤户相关的配置⽂件主要包括以下这么⼏个
/etc/passwd
此⽂件保存着:⽤户名:密码:UID:GID:⽤户描述:主⽬录:登录shell
/etc/shadow
此⽂件记录的⾏与passwd中的⾏⼀⼀对应,保存着:⽤户名:密码:最后⼀次修改时间:最⼩时间间隔:最⼤时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
此⽂件保存着:⽤户组名称:⽤户组密码:GID:⽤户列表(多个⽤户之间⽤,分隔)
/etc/gshadow
此⽂件与/etc/group⽂件中的⾏对应,保存着:⽤户组名:加密码后的密码:组管理员(多个⽤,分隔):组成员(多个⽤,分隔)
/etc/default/useradd
这个⽂件主要保存着创建账户时的默认值,使⽤useradd –D查看到的内容就是这个⽂件中的内容。
/etc/skel
这是个⼀个⽬录,相当于windows中公⽤的账号环境设置,⽐如,可以在这个⽬录⾥放⼀个⽂本⽂件,当创建⽤户时,在每个⽤户的家⽬录⾥都可以看到这个⽂件,当然也可以放置公共的配置⽂件,创建⽤户时就可以延⽤这个配置。
/etc/login.defs
这个是⽤来设置⽤户帐号限制的配置⽂件,⽐如密码的最⼤过期天数,长度等,但优先级⼩于/etc/shadow
/etc/profile
这个⽂件主要⽤来保存环境变量的,是全局的,由系统管理员管理
~/.bashrc .bash_history .bash_profile .bash_logout 等
这些⽂件主要⽤来定义⽤户的环境变量的。
⼀.⽤户管理
1.创建⽤户
怎么申请离婚自动离婚2023
命令⽤法:useradd 或 adduser [option] ⽤户名
useradd 或 adduser –D                    ⽤来查看创建账户时的默认值
useradd 或 adduser –D [option]        ⽤来指定或修改创建账户时的默认值
⼀般可以修改默认值的参数有:-b –e –f –g –s)
我们⽤ useradd –help来看⼀下都有哪些参数
[root@ha1 ~]# useradd --help
Usage: useradd [options] LOGIN
useradd –D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR      指定创建⽤户HOME⽬录的位置,⼀般结合 –D 使⽤
-c, --comment COMMENT        给新⽤户添加备注exe文件打不开
-d, --home-dir HOME_DIR      指定⽤户家⽬录的⽂件名
-D, --defaults                ⽤来查看创建账户时的默认值,也就是/etc/default/useradd⽂件中的内容
-e, --expiredate EXPIRE_DATE  ⽤YYYY-MM-DD格式指定⼀个账户过期的⽇期
-
f, --inactive INACTIVE      指定这个账户密码过期后多少天这个账户被禁⽤;0表⽰密码⼀过期就被禁⽤,-1表⽰禁⽤这
个功能
-g, --gid GROUP              指定⽤户所属组的GID或组名
-G, --groups GROUPS          指定⽤户除所属组外的⼀个或多个附加组
-h, --help                    display this help message and exit
-k, --skel SKEL_DIR          必须和-m⼀起使⽤,将/etc/skel⽬录的内容复制到⽤户的HOME⽬录
-K, --key KEY=VALUE          主要⽤来改写/etc/login.defs⽂件中的默认值,如:-K UID_MIN=100 –K UID_MAX=499
-l, --no-log-init            do not add the user to the lastlog and
faillog databases
-m, --create-home            创建⽤户的HOME⽬录
-M, --no-create-home          不创建⽤户的HOME⽬录
-N, --no-user-group          不创建与⽤户同名的⽤户组
-o, --non-unique              仅与-u选项结合使⽤,允许创建⼀个⽤户ID不唯⼀的⽤户
-p, --password PASSWORD      为⽤户指定默认密码
-r, --system                  创建系统账户
-R, --root CHROOT_DIR        允许⽤户根据配置⽂件来切换家⽬录
-s, --shell SHELL            指定⽤户登录的shell
-u, --uid UID                指定⽤户的UID
-U, --user-group              创建与⽤户同名的组
-Z, --selinux-user SEUSER    此选项不常⽤
举例说明:
创建名为jerry的⽤户,指定HOME⽬录:/home/h_jerry,指定UID 1022,不创建同名⽤户组,指定密码:jerry,指定shell:/bin/sh,指定账户过期时间:2017-08-09,允许密码过期后使⽤,添加⽤户描述:first user
[root@ha1 ~]# useradd -m -d /home/h_jerry -u 1022 -N -p jerry -s /bin/sh -e 2017-08-09 -f -1 -c "first user" jerry
⽤户创建完成没报错说明命令成功执⾏,那就⼀步⼀步来验证⼀下:
验证⽤户的UID
[root@ha1 ~]# id jerry
uid=1022(jerry) gid=100(users) groups=100(users)
看到⽤户ID 1022没错是我们指定的数字,由于没有创建指定的同名组,所以就⽤/etc/default/useradd中的默认值的组ID100,默认加⼊到users组中,都有哪些默认值呢,我们来看⼀下/etc/default/useradd这个⽂件
[root@ha1 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
看下/etc/passwd⽂件对应的jerry⾏的信息
[root@ha1 ~]# cat /etc/passwd |grep jerry
jerry:x:1022:100:first user:/home/h_jerry:/bin/sh
此⽂件由7段冒号隔开的字段
第⼀字段  jerry表是⽤户名
第⼆字段  X表⽰加密码后的密码
第三字段  1022表⽰UID
第四字段  100表⽰组ID
第五字段  first user表⽰描述信息
第六字段  /home/h_jerry表⽰家⽬录
第七字段  /bin/sh表⽰登录的sehll
再来看⼀下/etc/shadow⽂件中的内容
[root@ha1 ~]# cat /etc/shadow |grep jerry
jerry:jerry:17386:0:99999:7::17387:
/
etc/shadow⽂件由9个字段组成,⽤:分隔
第⼀字段  jerry:表⽰⽤户名
第⼆字段  jerry:表⽰密码,这⾥看到是明⽂的,并没有被加密码,但是passwd jerry来修改密码后就会是加密的。
第三字段  17386:表⽰上次修改密码的时间,这个时间是从1970年1⽉1号到最近⼀次修改密码的时间间隔天数
第四字段  0:表⽰2次修改密码间隔的天数,0表⽰禁⽤此功能
第五字段  99999:表⽰2次修改密码间隔最多的天数,也有默认值,是通过/etc/login.defs中PASS_MAX_DAYS定义
第六字段  7:表⽰提前7天警告⽤户密码过期,也有默认值,是通过/etc/login.defs中PASS_WARN_AGE定义
辉乐豪铜门第七字段在密码过期之后多少天禁⽤此⽤户,也就是过期多少天后系统禁⽤此⽤户,不能登录,不会提⽰过期,完全禁⽤,
空:表⽰密码过期后账号仍然可⽤(-f –1)
第⼋字段  17387:⽤户过期⽇期(从19700101开始的天数)和创建⽤户指定过期⽇期正好相符(-e 2017-08-09)
第九字段保留字段留空
看⼀下⽤户的HOME⽬录
[root@ha1 ~]# ll /home
total 0
drwx------. 2 jerry users 62 Aug  8 21:37 h_jerry
[root@ha1 ~]# ll -a /home/h_jerry/
total 16
drwx------. 2 jerry users  83 Aug  9 18:45 .
drwxr-xr-x. 4 root  root  33 Aug  9 18:39 ..
-rw-------. 1 jerry users  11 Aug  9 18:45 .bash_history
-rw-r--r--. 1 jerry users  18 Aug  3  2016 .bash_logout
-rw-r--r--. 1 jerry users 193 Aug  3  2016 .bash_profile
-rw-r--r--. 1 jerry users 231 Aug  3  2016 .bashrc
OK,到这⾥⽤户创建已经成功,简单梳理⼀下创建⽤户时系统做了哪些事:
如果创建⽤户不带参数,系统会根据默认值(/etc/default/useradd,/etc/login.defs)创建⽤户及同名⽤户组,并在HOME⽬录⾥创建同名家⽬录,默认的登录shell为/bin/bash。
如果创建⽤户时带了参数,那么系统会根据参数来创建指定⽤户信息。
⽤户创建完成后,/etc/passwd,/etc/shadow这2个⽂件都会有相应的⽤户信息。
在⽤户家⽬录⾥都会产⽣.bash_history .bash_logou .bash_profile .bashrc4个隐藏⽂件。
开篇提到了/etc/skel这个⽬录,到底是⼲什么⽤的呢,试⼀下就知道了,在这个⽬录⾥创建⼀个a.txt的⽂件,接着再创建⼀个tcl的新⽤户,再看看⽤户的家⽬录。
[root@ha1 ~]# vi /etc/
[root@ha1 ~]# useradd tcl
[root@ha1 ~]# ll /home/tcl/
total 4
-rw-r--r--. 1 tcl tcl 28 Aug  9 18:
看到了吧,在/etc/skel⽬录⾥的⽂件被复制到了新创建的⽤户的家⽬录⾥,注意,已经创建好的⽤户家⽬录⾥是没有的,只对新创建的⽤户有效。
2.为⽤户设置密码
使⽤passwd ⽤户名即可修改相应⽤户的密码
[root@ha1 ~]# passwd jerry
Changing password for user jerry.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
关于母亲节的演讲稿passwd: all authentication tokens updated successfully.
[root@ha1 ~]# echo "jerry" | passwd --stdin jerry
Changing password for user jerry.
passwd: all authentication tokens updated successfully.
3.删除⽤户
userdel 选项⽤户名
userdel –r ⽤户名删除⽤户及家⽬录
[root@ha1 ~]# userdel -r tcl
[root@ha1 ~]# ll /home
total 0
drwx------. 2 jerry users 83 Aug  9 18:45 h_jerry
drwx------. 2 test  test  83 Aug  9 18:45 test
4.修改⽤户
usermod 选项⽤户名
选项参数和useradd命令参数⼤致相同
-d  --home HOME_DIR    指定新的家⽬录
-a  --append                  将⽤户追加到附加组中⽽不移出其它组
-l  --login NEW_LOGIN    指定新的⽤户名
-L  --lock                        锁定⽤户
-m  --move-home            和-d选项结合使⽤,移动家⽬录中的内容到新的位置
举例说明:
将jerry⽤户改名为natasha,移动家⽬录的内容到/home/natasha,指定新的UID为1010,登录shell改为/bin/bash,并锁定⽤户[root@ha1 ~]# usermod -l natasha -d /home/natasha -m -u 1010 -s /bin/bash jerry
[root@ha1 ~]# ll /home
total 0
drwx------. 2 natasha users 83 Aug  9 18:45 natasha
drwx------. 2 test    test  83 Aug  9 18:45 test
[root@ha1 ~]# id natasha
uid=1010(natasha) gid=100(users) groups=100(users)
[root@ha1 ~]# cat /etc/passwd |grep natasha
natasha:x:1010:100:first user:/home/natasha:/bin/bash
⼆.⽤户组管理
1.创建组
groupadd 选项组名
选项
-f    --force    强制创建组即使组已存在,如果GID已存在将取消-g选项
-g  --gid GID 指定组GID号
举例说明:
创建⼀个名为natasha的组,并将⽤户natasha和test分别加⼊natasha和test组中
[root@ha1 ~]# groupadd -g 1010 natasha
[root@ha1 ~]# usermod -a -G test test
[root@ha1 ~]# cat /etc/group |grep -E "natasha|test"
test:x:1023:test
natasha:x:1010:test,natasha
[root@ha1 ~]# usermod -a -G test natasha
[root@ha1 ~]# cat /etc/group |grep -E "natasha|test"
test:x:1023:test,natasha
natasha:x:1010:test,natasha
2.删除组
刀剑封魔录之上古传说攻略
groupdel 组名
3.修改组
groupmod 选项组名
选项
-
g  --gid GID      改变组的ID号
-n  --new-name  改变组名
⽤法和usermod类似
总结⼀下,创建组后会在/etc/group,/etc/gshadow⽂件中产⽣相应的组信息
/etc/group⽂件格式说明:分为4个字段,⽤冒号隔开
natasha:x:1010:test,natasha
第⼀字段:表⽰组名
第⼆字段:表⽰组密码,存放在/etc/gshadow⽂件中
第三字段:表⽰组ID号
第四字段:表⽰组成员,多个组成员⽤逗号隔开
/etc/gshadow⽂件格式说明:分为4个字段,⽤冒号隔开
natasha:!::test,natasha
第⼀字段:组名
第⼆字段:加密码后的密码
第三字段:组管理员(多个⽤,分隔)
第四字段:组成员(多个⽤,分隔)
三.⽂件,⽬录权限管理
在linux中设置⽂件权限⾮常重要,也是最基本的。linux⽂件的权限分为读(r-4)写(w-2)执⾏(x-1),和windows⼀样设置权限需要针对⽤户,⽤户所属的组,还有其它⽤户。只有设置了正确的权限,相应的⽤户才能根据权限执⾏相应的操作,很多时候我们配置WEB服务,FTP服务等都需要对相应的⽂件或⽂件夹赋与相应的权限才能正常跑起来,有时遇到问题通过查看错误⽇志会发现很多情况下是由于权限不当引起的。
⽂件权限分⼀般权限和特殊权限
⼀般权限主要指的是:⽂件所有者的权限,所属组的权限,其它⽤户权限
特殊权限主要指的是:权限中带s或S(SUID,SGID),t或T标志位
和⽂件权限有关的⼯具命令
ls –l    查看⽂件或⽬录的权限
umask  查看或设置权限遮罩(即实际权限=最⼤权限-遮罩值)
chmod  改变⽂件或⽬录的权限
chown  更改⽂件或⽬录的所有者
chgrp    更改⽂件或⽬录的所属组
getfacl  获取⽂件或⽬录权限访问控制列表
setfacl  设置⽂件或⽬录权限访问控制列表
先来看⼀下⽂件权限的查看⽅式,使⽤ll命令就可以查看长格式的⽂件权限等信息
[root@ha1 test]# ll
-
rw-r--r--. 1 root root 67 Mar 29 20:07 README.md
drwxr-xr-x. 3 root root 36 Mar 29 20:15 shell
[root@ha1 test]# ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd
权限有3段组成,rwxrwxrwx代表最⾼权限,修改权限时也可以⽤777表⽰,-表⽰没有此项权限,本该出现x的位置出现s表⽰拥有SUID权限。
SUID对应4,SGID对应2,SBIT对应1
SUID只对⼆进制程序有效,执⾏者对于程序需要有X权限,在程序运⾏过程中,执⾏者(普通⽤户)将临时拥有程序所有者的权限
SGID对于⽂件来说只对⼆进制程序有效,普通⽤户将会临时拥有所属组的权限,对于⽬录来说,⽤户对此⽬录有RX权限可以进⼊⽬录,⽤户进⼊⽬录后,有效⽤户组会变成该⽬录的⽤户组,若⽤户在此⽬录有w权限,则⽤户创建的⽂件⽤户组与该⽬录⽤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。