Linux九阴真经之催心掌残卷3

用户、组和权限

Linux组的类别
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户,私有组
用户的附加组(supplementary group)
一个用户可以属于零个或多个辅助组

chsh 更改用户shell类型 

chsh -s  /etc/nologin wang :更改wang的shell类型为nologin类型

修改用户口令属性

[root@laobai ~]#chage root
Changing the aging information for root
Enter the new value, or press ENTER for the default
 
    Minimum Password Age [0]: 5        最短口令有效期
    Maximum Password Age [99999]: 56        最长口令有效期
    Last Password Change (YYYY-MM-DD) [2018-04-03]: 2018-040-04  修改口令时间
    Password Expiration Warning [7]: 9      口令过期警报时间
    Password Inactive [-1]:     宽限期
    Account Expiration Date (YYYY-MM-DD) [-1]:     账号有效期

修改新建账号默认用户口令的属性

nano  /etc/login.defs

PASS_MAX_DAYS   42  最长有效期 
PASS_MIN_DAYS   3   最短有效期
PASS_MIN_LEN    5
PASS_WARN_AGE   7

 

用户和组的配置文件

Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性

在shadow文件内  用户后面会有!号,表示锁定。

useradd -U +用户名 可解锁用户

useradd -L  +用户名  锁定用户

passwd -e +用户名    让用户口令立即失效,从新登陆后提示输入旧口令,然后输入新口令

 

useradd 创建用户

  • -u:指定uid
  • -g:指定gid为主组
  • -G:指定附加组
  • -o:不检查uid唯一性,结合-u使用
  • -c:添加描述信息
  • -d:指定家目录
  • -s:指定默认shell
  • -N:不创建主组,并且加入users组为主组
  • -r:创建系统用户
  • -m:创建系统用户时强制创建家目录,结合-r使用
  • -M:创建登录用户时不创建家目录
  • -D:修改/etc/default/useradd文件
    • -s SHELL
    • -b HOME
    • -g GROUP

usermod 修改用户

  • -u:修改uid
  • -g:修改gid
  • -G:修改附加组,结合-a可以追加附加组
  • -s:修改默认shell
  • -c:修改描述信息
  • -d:修改家目录,结合-m可以搬家
  • -l:修改用户名
  • -L:锁定账户
  • -U:解锁账户,在新系统上不支持对空密码用户解锁
  • -e YYYY-MM-DD:设置账户过期时间
  • -f INACTIVE:设定非活动期限

userdel 删除用户

  •  -r:删除用户时连家目录一并删除

id 查看用户信息

  • -u:查看uid
  • -g:查看gid
  • -G:查看用户所属的组的ID
  • -n:显示名称,配合-ugG使用

su 切换用户

  • su USERNAME 非完全切换,部分变量还是原用户的变量
  • su - USERNAME 完全切换,相当于重新登录
  • su [-] USERNAME -c 'CMD' 登录到新用户执行CMD命令后返回旧用户

passwd 修改用户密码

  • -d:删除指定用户名密码
  • -l:锁定用户密码 == usermod -L
  • -u:解锁用户密码 == usermod -U
  • -e:强制用户下次登录必须修改密码
  • -f:强制操作
  • -n MINDATS:最短使用期限
  • -x MAXDAYS:最长使用期限
  • -w WARNDAYS:提前多少天警告
  • -i INACTIVEDAYS:非活动期限
  • --stdin 从标准输入接受用户密码,如:echo "user1" | passwd --stdin user1 修改user1用户的密码为user1

chage 修改用户密码默认策略 /etc/login.defs

  • -d LAST_DAY
  • -E --expiredate EXPIRE_DATE
  • -I --inactive INACTIVE
  • -m --mindays MIN_DAYS
  • -M --maxdays MAX_DAYS
  • -W --warndays WARN_DAYS
  • –l 显示密码策略

 

练习
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

[root@laobai ~]#useradd -s /bin/csh -G bin,root gentoosss -c "hello"
[root@laobai ~]#genent passwd gentoosss
-bash: genent: command not found
[root@laobai ~]#getent passwd gentooss
[root@laobai ~]#id gentoosss
uid=517(gentoosss) gid=518(gentoosss) groups=518(gentoosss),0(root),1(bin)


2、创建下面的用户、组和组成员关系
名字为webs 的组
用户nginx 使用webs 作为附属组
用户varnish,也使用webs 作为附属组
用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,mysql密码都是magedu

[root@laobai ~]#groupadd web
[root@laobai ~]#useradd -G web aaaaa
[root@laobai ~]#useradd -G web bbbbb
[root@laobai ~]#useradd -s /sbin/nologin ccccc
[root@laobai ~]#echo magedu |passwd --stdin aaaaa
Changing password for user aaaaa.
passwd: all authentication tokens updated successfully.
[root@laobai ~]#echo magedu |passwd --stdin bbbbb
Changing password for user bbbbb.
passwd: all authentication tokens updated successfully.
[root@laobai ~]#echo magedu |passwd --stdin ccccc
Changing password for user ccccc.
passwd: all authentication tokens updated successfully

 批量创建用户,设置密码

[root@laobai date]#touch user.txt
[root@laobai date]#cat user.txt
app22:x:508:509::/home/app:/bin/bash
bcd22:x:509:511::/etc/data/bcdhome:/bin/bash
bcde22:x:510:512::/etc/data/bcdhome:/bin/bash
bbb22:x:511:513::/etc/data/bbbhome:/bin/bash
[root@laobai date]#newusers /date/user.txt
[root@laobai date]#nano pass.txt
[root@laobai date]#cat pass.txt
app22:123456
pcd22:123456
bcde22:123456
bbb22:123456
[root@laobai date]#cat pass.txt | chpasswd

用户属性修改

usermod [OPTION] login

-u UID: 新UID

-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项

[root@laobai ~]#usermod -aG bin haha
[root@laobai ~]#id haha
uid=513(haha) gid=514(haha) groups=514(haha),0(root),1(bin)


-s SHELL:新的默认SHELL
-c 'COMMENT':新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字;

[root@laobai ~]#usermod -l didida didi


-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限

查看用户相关的ID信息
id [OPTION]... [USER]
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用

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

su  +用户名      切换用户(不完全切换)

su  -  +用户名   切换用户(完全切换)

换个身份执行命令,再退回到原账号

[wang@laobai ~]#su - root -c 'cat /etc/shadow'


设置密码

passwd [OPTIONS] UserName: 修改指定用户的密码
常用选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f: 强制操作
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAME

 创建组

groupadd [OPTION]... group_name
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组

修改和删除组

组属性修改:groupmod
groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID
组删除:groupdel
groupdel GROUP

更改组密码

组密码:gpasswd
gpasswd [OPTION] GROUP
-a user 将user添加至指定组中

[root@laobai ~]#gpasswd -a varn g1
Adding user varn to group g1
[root@laobai ~]#id varn
uid=521(varn) gid=523(varn) groups=523(varn),521(webs),526(g1)


-d user 从指定组中移除用户user

[root@laobai ~]#gpasswd -d varn g1
Removing user varn from group g1


-A user1,user2,... 设置有管理权限的用户列表
newgrp命令:临时切换主组
如果用户本不属于此组,则需要组密码

更改和查看组成员

groupmems [options] [action]
options:
-g, --group groupname 更改为指定组 (只有root)
Actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表
groups [OPTION].[USERNAME]... 查看用户所属组列表

将用户加入组

[root@laobai ~]#groupmems -a varn -g g1
[root@laobai ~]#id varn
uid=521(varn) gid=523(varn) groups=523(varn),521(webs),526(g1)

将用户移除该组

[root@laobai ~]#groupmems -d varn -g g1
[root@laobai ~]#id varn
uid=521(varn) gid=523(varn) groups=523(varn),521(webs)

文件权限总结

普通用户对于读写执行权限都是有严格控制的

对于读写权限,root不受控制,但对于执行权限,如果root没有执行权限,那就无法执行操作

读权限对于二进制文件来说并不是必不可少的

普通用户不能修改文件所有者

删除文件不是对文件的权限,而是对文件所在目录的写权限

对于目录而言,没有执行权限意味着不可以cd进去看文件的详细属性,也不能访问目录里的文件内容

文件能否被删除要看目录是否有执行权限

 文件获取权限的顺序是先看所有者 再看组,最后看其他,如果所有者满足条件,直接继承所有者权限,即使权限最小也不例外。

修改文件的属主和属组

修改用户权限

shown + 所有者  +文件名

chgrp   +所有者  +文件名

文件权限

文件的权限主要针对三类对象进行定义
owner: 属主, u
group: 属组, g
other: 其他,  o
每个文件针对每类访问者都定义了三种权限
r: Readable
w: Writable
x: eXcutable

修改文件权限

chmod

方法1

chmod  who  opt  per  file

who:u 、g、o

otp:+   、--、==

per:r、w、x、X

例 :chmod  u+x,g-x,o=   file

方法2

参考前文件,修改后面的文件

  chmod  --reference=f1  f2  f3

方法3

数字法

u      g      o

rwx  rw-   r--

111 110 100

r:4   w:2  x:1

 

 

 

 

 

 

 


posted @ 2018-04-04 21:03  老白&  阅读(286)  评论(0编辑  收藏  举报