linux e权限,linux 用户及权限

用户管理

用户帐号 与 组帐号 唯一标识: UID(用户的ID) GID(组的ID)

管理员的UID为:0

用户

/etc/passwd #用户基本信息

添加用户

useradd

-u 设置账户UID

-d 设置账户家目录 默认为/home/用户名

-g 设置账户所属基本组

-e 设置账户的失效日期 格式为YYYY-MM-DD

-G 设置账户所属附加组

-s 设置账户登陆Shell

例:

[root@server0 ~]# grep 'nsd01' /etc/passwd

nsd01:x:1001:1001::/home/nsd01:/bin/bash

用户名:密码占位符:UID:GID:用户的描述信息:家目录:解释器

[root@server0 /]# useradd nsd01

[root@server0 /]# id nsd01

[root@server0 /]# grep 'nsd' /etc/passwd

[root@server0 /]# useradd -u 1100 nsd02 #指定UID

[root@server0 /]# grep 'nsd' /etc/passwd

[root@server0 /]# useradd -d /op/haha nsd03 #指定家目录

[root@server0 /]# grep 'nsd' /etc/passwd

指定登陆的解释器程序

[root@server0 /]# useradd -s /sbin/nologin nsd04

[root@server0 /]# grep 'nsd' /etc/passwd

如果用户的解释器程序为/sbin/nologin则不能登陆操作系统

[root@server0 /]# useradd -g nsd01 nsd09

[root@server0 /]# id nsd09

[root@server0 /]# useradd -G nsd01 nsd10

[root@server0 /]# id nsd10

修改用户信息

usermod

-u 修改账户UID

-d 修改账户家目录

-g 修改账户所属基本组

-G 修改账户所属附加组

-e 修改账户的失效日期

-s 修改账户登陆Shell

显示账户信息

id 用户名

删除用户

userdel

-r 递归删除 删除用户家目录

临时切换用户身份

su - 用户名

账户密码

/etc/shadow #用户密码信息

[root@server0 ~]# head -1 /etc/shadow

root:$6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1:16261:0:99999:7:::

用户名 : 密码 : 上一次修改时间 : 密码最短使用时间 : 密码最长使用时间 : 提前多少时间警告:::

修改密码:

passwd 用户名

-l 锁定账户

-u 解锁账户

#管理员模式下

echo '密码' | passwd --stdin 用户名 #非交互式更改密码

组账户管理

组账户:

方便管理用户帐号(权限)把相同权限用户加入到同一个组中

分类:

基本组

附加组(公共组 从属组)

/etc/group #组基本信息

创建组帐号

groupadd

例:

[root@server0 ~]# useradd kenji

[root@server0 ~]# useradd tom

[root@server0 ~]# useradd kaka

[root@server0 ~]# useradd henter

[root@server0 ~]# groupadd tarena

[root@server0 ~]# grep 'tarena' /etc/group

gpasswd

gpasswd -a #加入组成员

gpasswd -d #删除组成员

gpasswd -M #覆盖组成员

例:

gpasswd - M '' 组名 #删除该组全部成员

[root@server0 ~]# grep 'tarena' /etc/group #查看组信息

[root@server0 ~]# gpasswd -a kenji tarena #加入组成员

[root@server0 ~]# id kenji

[root@server0 ~]# gpasswd -a tom tarena

[root@server0 ~]# grep 'tarena' /etc/group

[root@server0 ~]# gpasswd -a kaka tarena

[root@server0 ~]# grep 'tarena' /etc/group

[root@server0 ~]# gpasswd -d kenji tarena #删除组成员

[root@server0 ~]# grep 'tarena' /etc/group

[root@server0 ~]# gpasswd -M 'kenji,henter' tarena

[root@server0 ~]# grep 'tarena' /etc/group

[root@server0 ~]# gpasswd -M 'kenji,kaka,tom,henter' tarena

[root@server0 ~]# grep 'tarena' /etc/group

[root@server0 ~]# gpasswd -M '' tarena

[root@server0 ~]# grep 'tarena' /etc/group

用户安全:

passwd

-l锁定 -u解锁 -S 看状态

[root@server0 ~# useradd test

[root@server0 ~]# echo 123 | passwd --stdin test

更改用户 test 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@server0 ~]# passwd -S test

test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

[root@server0 ~]# passwd -l test

锁定用户 test 的密码 。

passwd: 操作成功

[root@server0 ~]# passwd -S test

test LK 2018-01-01 0 99999 7 -1 (密码已被锁定。)

[root@server0 ~# passwd -u test

解锁用户 test 的密码。

passwd: 操作成功

[root@server0 ~]# passwd -S test

test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

chage #查看用户信息

选项:

-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” 0 强制修改密码

-E, --expiredate 过期日期 将帐户过期时间设为“过期日期” yyyy/mm/dd 指定失效日期 (-1 取消)

-h, --help 显示此帮助信息并推出

-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态

-l, --list 显示帐户年龄信息

-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”

-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”

-R, --root CHROOT_DIR chroot 到的目录

-W, --warndays 警告天数 将过期警告天数设为“警告天数”

[root@server0 ~]# chage -E 2018/01/31 tom

[root@server0 ~]# chage -l tom

最近一次密码修改时间 :1月 02, 2018

密码过期时间 :从不

密码失效时间 :从不

帐户过期时间 :1月 31, 2018

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :99999

在密码过期之前警告的天数 :7

与用户相关的配置问文件

/etc/passwd

/etc/shadow

/etc/login.defs #添加系统用户的默认配置文件

/etc/skel/ #存储用户系统环境配置文件

[root@test ~]# ls /etc/skel/ -a

. .. .bash_logout .bash_profile .bashrc .mozilla

[root@test ~]# useradd yy1

[root@test ~]# ls /home/yy1/ -a

. .. .bash_logout .bash_profile .bashrc .mozilla

[root@test ~]# touch /etc/skel/test.txt

[root@test ~]# useradd yy2

[root@test ~]# ls -a /home/yy2/

. .. .bash_logout .bash_profile .bashrc .mozilla test.txt

基本权限的类型

访问方式(权限)

读取:允许查看内容 -read r

写入:允许修改内容 -write w

可执行:允许运行和切换 -execuit x

对于文本文件:

r: cat head tail less

w: vim

x: 运行

权限适用对象(归属)

所有者:拥有此文件/目录的用户-user u

所属组:拥有此文件/目录的组-group g

其他用户:除所有者,所属组以外的用户-other o

[root@server0 ~]# ls -ld /etc/

drwxr-xr-x. 133 root root 8192 10月 30 10:14 /etc/

[root@server0 ~]# ls -l /etc/passwd

-rw-r--r--. 1 root root 2089 10月 30 10:14 /etc/passwd

[root@server0 ~]# ls -l /etc/rc.local

lrwxrwxrwx. 1 root root 13 5月 7 2014 /etc/rc.local -> rc.d/rc.local

权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

权限位(9位)

文件类型(1) User(属主)(3) Group(属组)(3) Other(其他人)(3)

文件类型

代表普通文件 d 代表目录 l 代表链接文件

三位一组分别为 所有者权限,所属组权限,其他账户权限

设置基本权限

chmod (只root能用)

chmod 归属关系+-=权限类别 文档

-R 递归将权限应用于所有的子目录与子文件

[root@server0 ~]# chmod u-x /nsd01/

[root@server0 ~]# ls -ld /nsd01/

drw-r-xr-x. 2 root root 6 10月 30 10:41 /nsd01/

[root@server0 ~]# chmod g+w /nsd01/

[root@server0 ~]# ls -ld /nsd01/

drw-rwxr-x. 2 root root 6 10月 30 10:41 /nsd01/

[root@server0 ~]# chmod u=rwx,g=rx,o=r /nsd01/

[root@server0 ~]# ls -ld /nsd01/

drwxr-xr--. 2 root root 6 10月 30 10:41 /nsd01/

如何判断用户具备权限

1.判断用户所属的身份 是否是所有者 是否在所有组 所有者>所属组 >其他人 匹配及停止

2.看相应权限位的权限划分

目录的r 权限:能够ls 浏览此目录内容

目录的w 权限:能够执行 rm/mv/cp/mkdir/touch/..等更改目录内容的操作

目录的x 权限:能够cd切换到此目录

设置文件归属

使用chown命令

chown [所有者][:[所属组]] 文件或目录

-R 递归将权限应用于所有的子目录与子文件

例:

[root@server0 /]# chown :tedu /nsd02

[root@server0 /]# ls -ld /nsd02

drwxr-xr-x. 2 root tedu 6 10月 30 11:42 /nsd02

[root@server0 /]# useradd dc

[root@server0 /]# chown dc:tedu /nsd02

[root@server0 /]# ls -ld /nsd02

drwxr-xr-x. 2 dc tedu 6 10月 30 11:42 /nsd02

[root@server0 /]# chown student /nsd02

[root@server0 /]# ls -ld /nsd02

drwxr-xr-x. 2 student tedu 6 10月 30 11:42 /nsd02

特殊权限(附加权限)

Set UID

附加在属主的x位上

属主的权限标识会变成s

适用于可执行文件,Set UID 可以让使用者具有文件属组的身份及部分权限

(传递所有者身份) 如 手持尚方宝剑

例:

[root@server0 /]# cp /usr/bin/touch /usr/bin/hahach

[root@server0 /]# chmod u+s /usr/bin/hahach

[root@server0 /]# ls -l /usr/bin/hahach

-rwsr-xr-x. 1 root root 62432 10月 30 14:14 /usr/bin/hahach

[root@server0 /]# su - dc

[dc@server0 ~]$ touch a.txt

[dc@server0 ~]$ hahach b.txt

[dc@server0 ~]$ ls -l

total 0

-rw-rw-r--. 1 dc dc 0 Oct 30 14:15 a.txt

-rw-rw-r--. 1 root dc 0 Oct 30 14:15 b.txt

Set GID

附加在属组的x位

属组的权限标识变成为s

适用于可执行文件,功能于Set UID类似

适用于目录,Set GID可以是目录下新增的文档自动设置与父目录相同的属组

为了使在这个目录下新增的文件或目录的所属组和父目录相同(只针对未来生成的文件)

例:

[root@server0 /]# ls -l /test/1.txt

-rw-r--r--. 1 root root 0 10月 30 14:37 /test/1.txt

[root@server0 /]# chown :tedu /test/

[root@server0 /]# chmod g+s /test/

[root@server0 /]# ls -ld /test

drwxr-sr-x. 2 root tedu 18 10月 30 14:37 /test

[root@server0 /]# mkdir /test/testone

[root@server0 /]# ls -l /test/

-rw-r--r--. 1 root root 0 10月 30 14:37 1.txt

drwxr-sr-x. 2 root tedu 6 10月 30 14:39 testone

Sticky Bit

附加在其他人的x位

其他人的权限标识变成为t

适用于开放w 权限的目录,可以阻止用户滥用w 写入权限

(禁止操作别人的文档)

例:

[root@server0 /]# chmod u+w,g+w,o+w /public/

[root@server0 /]# chmod o+t /public/

[root@server0 /]# ls -ld /public/

drwxrwxrwt. 2 root root 6 10月 30 14:43 /public/

[zhangsan@server0 /]$ ls -l /public/

-rw-rw-r--. 1 dc dc 0 Oct 30 14:53 dc.txt

-rw-rw-r--. 1 test test 0 Oct 30 14:52 test.txt

-rw-rw-r--. 1 zhangsan zhangsan 0 Oct 30 14:52 zhangsan.txt

[zhangsan@server0 /]$ rm -rf /public/test.txt

rm: cannot remove ‘/public/test.txt’: Operation not permitted

ACL 访问控制列表

作用

文档归属的局限性

任何人只属于三种角色:属主,属组,其他人

无法实现更精细的控制

acl访问策略

能狗对个别用户,个别组设置独立的权限

大多挂载EXT3/4(存储小文件),XFS(存储大文件)文件系统已支持

命令

getfacl 文档 #查看ACL策略

setfacl [-R] -m u:用户名:权限类别 文档

setfacl [-R] -m g:组名 :权限类别 文档

setfacl [-R] -x u:用户名 文档 #删除指定ACL策略

setfacl [-R] -b 文档 #清空ACL策略

例:

[dc@server0 ~]$ cd /NB/

bash: cd: /NB/: Permission denied

[root@server0 /]# ls -ld /NB/

drwxrwx---. 2 root cw 6 10月 30 15:27 /NB/

[root@server0 /]# setfacl -m u:dc:rx /NB/

[root@server0 /]# ls -ld /NB/

drwxrwx---+ 2 root cw 6 10月 30 15:27 /NB/

[root@server0 /]# getfacl /NB/

getfacl: Removing leading '/' from absolute path names

# file: NB/

# owner: root

# group: cw

user::rwx

user:dc:r-x

group::rwx

mask::rwx

other::---

[dc@server0 ~]$ cd /NB/

[dc@server0 NB]$

权限的数值变化

权限的数值化

基本权限:r=4,w=2,x=1

附加权限:SUID=4,SGID=2,Sticky Bit=1

采取数值形式设置权限

chmod [-R ] nnn 文当 设置基本权限

chmod [-R ] xnnn 文档 设置附加权限(x为附加权限数值)

例如:

[root@room1pc32 桌面]# mkdir /test01

[root@room1pc32 桌面]# ls -ld /test01

drwxr-xr-x. 2 root root 6 11月 11 09:26 /test01

[root@room1pc32 桌面]# chmod 007 /test01

[root@room1pc32 桌面]# ls -ld /test01

d------rwx. 2 root root 6 11月 11 09:26 /test01

[root@room1pc32 桌面]# chmod 777 /test01

[root@room1pc32 桌面]# ls -ld /test01

drwxrwxrwx. 2 root root 6 11月 11 09:26 /test01

[root@room1pc32 桌面]# chmod 4750 /test01/

[root@room1pc32 桌面]# ls -ld /test01/

drwsr-x---. 2 root root 6 11月 11 09:26 /test01/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值