Linux入门笔记之--用户身份与文件权限

未完待续。。。

1.用户身份能力

Linux中,UID具有唯一性,用户身份通过UID来区分

UID用户类型
0系统的管理员用户
1~999系统用户
1000+普通用户

 

用户组: 可以把多个用户加入到同一个组,方便为同一组的用户统一规划权限或指定任务;

Linux系统中每创建一个用户,就自动创建一个同名的基本用户组,只包含该用户一人;该用户以后可以纳入其他用户组,称为该用户的扩展用户组。

 

useradd命令:创建新的用户

参数作用
-d指定用户的家目录(默认为/home/username)
-e账户的到期时间,格式为YYYY-MM-DD.
-u指定该用户的默认UID
-g指定一个初始的用户基本组(必须已存在)
-G指定一个或多个扩展用户组
-N不创建与用户同名的基本用户组
-s指定该用户的默认Shell解释器

例子:创建一个普通用户并指定家目录的路径:/home/linux、用户的UID:8888以及Shell解释器:/sbin/nologin

[root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)

 

groupadd命令:创建用户组

例子:创建一个名为myUserGroup的用户组

[root@linuxprobe ~]# groupadd myUserGroup

 

usermod命令:修改用户的属性

参数作用
-c填写用户账户的备注信息
-d -m参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e账户的到期时间,格式为YYYY-MM-DD
-g变更所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录系统
-U解锁用户,允许其登录系统
-s变更默认终端
-u修改用户的UID

例子:将用户linuxprobe加入到root用户组中,修改扩展用户组为root组,修改用户的uid

#查看linuxprobe的用户信息
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)

#修改该用户的扩展权限组为root组
[root@linuxprobe ~]# usermod -G root linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

#修改该用户的uid为8888
[root@linuxprobe ~]# usermod -u 8888 linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

 

passwd命令:修改用户密码、过期时间、认证信息等

普通用户只能使用passwd命令修改自身的系统密码,而root管理员则有权限修改其他所有人的密码;

root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码;

参数作用
-l锁定用户,禁止其登录
-u解除锁定,允许用户登录
--stdin允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d使该用户可用空密码登录系统
-e强制用户在下次登录时修改密码
-S显示用户的密码是否被锁定,以及密码所采用的加密算法名称

例子:修改root用户的密码,修改linuxprobe用户的密码

[root@linuxprobe ~]# passwd
Changing password for user root.
New password:此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.

例子:1,锁定用户。2,显示用户是否锁定,以及加密算法;3,解锁用户。4,显示用户是否锁定,以及加密算法

[root@linuxprobe ~]# passwd -l linuxprobe
Locking password for user linuxprobe.
passwd: Success
[root@linuxprobe ~]# passwd -S linuxprobe
linuxprobe LK 2017-12-26 0 99999 7 -1 (Password locked.)
[root@linuxprobe ~]# passwd -u linuxprobe
Unlocking password for user linuxprobe.
passwd: Success
[root@linuxprobe ~]# passwd -S linuxprobe
linuxprobe PS 2017-12-26 0 99999 7 -1 (Password set, SHA512 crypt.)

 

userdel命令

参数作用
-f强制删除用户
-r同时删除用户及用户家目录

例子:删除用户:先查看该用户信息,再删除该用户及其家目录,再查看一次。

[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
[root@linuxprobe ~]# userdel -r linuxprobe
[root@linuxprobe ~]# id linuxprobe
id: linuxprobe: no such user

-------------------------------------------------------------------------------------------------------------------

2.文件权限与归属

文件类型区分

-普通文件
d目录文件
l链接文件
b块设备文件
c字符设备文件
p管道文件

文件权限

--------- (9位组成,前3位表示文件的所有者有的读,写,执行权限;中间3为便是文件所属组的读,写,执行权限;后3位表示其他用户的读,写,执行权限)

r --> 4;

w --> 2;

x --> 1;

例子:rwxrw-r-- (764)表示该文件的所有者对该文件有读,写,执行权限;该文件的所属组对该文件有读,写权限;其他用户对该文件只有读权限;

3.文件的特殊权限

SUID是一种对二进制程序进行设置的特殊权限

例子:1,(----------.)只有root才有权限操作/etc/shadow文件,2,(-rwsr-xr-x)但是用户自己可以通过/bin/passwd来修改自己的用户密码

[root@linuxprobe ~]# ls -l /etc/shadow
----------. 1 root root 1004 Jan 3 06:23 /etc/shadow
[root@linuxprobe ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd

SGID

让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);

在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

(只言片语说不清,看书例子。。。)

SBIT

。。

 

chmod命令:设置文件或目录的权限

例子:将test文件的权限变成760(所有者可读可写可执行,所属组可读可写,其他用户没有权限)

[root@linuxprobe ~]# ls -al test
-rw-rw-r--. 1 linuxprobe root 15 Feb 11 11:50 test
[root@linuxprobe ~]# chmod 760 test
[root@linuxprobe ~]# ls -l test
-rwxrw----. 1 linuxprobe root 15 Feb 11 11:50 test

chown命令:设置文件或目录的所有者和所属组

[root@linuxprobe ~]# ls -l test
-rwxrw----. 1 linuxprobe root 15 Feb 11 11:50 test
[root@linuxprobe ~]# chown root:bin test
[root@linuxprobe ~]# ls -l test
-rwxrw----. 1 root bin 15 Feb 11 11:50 test

 

4.文件的隐藏属性

chattr命令:用于设置文件的隐藏属性

添加:需要在命令后追加 “+参数”

移除:命令后追加 “-参数”

参数作用
i无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S文件内容在变更后立即同步到硬盘(sync)
s彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A不再修改这个文件或目录的最后访问时间(atime)
b不再修改文件或目录的存取时间
D检查压缩文件中的错误
d使用dump命令备份时忽略本文件/目录
c默认将文件或目录进行压缩
u当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t让文件系统支持尾部合并(tail-merging)
x可以直接访问压缩文件中的内容

 

lsattr命令:用于查看文件的隐藏属性

例子:查看linuxprobe文件的隐藏属性

[root@linuxprobe ~]# lsattr linuxprobe
-----a---------- linuxprobe

5.文件访问控制列表ACL

概述、

如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了;

基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限;

如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。

 

setfacl命令:用于管理文件的ACL规则

文件的ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制;

使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制;

针对目录文件需要使用-R递归参数;

针对普通文件则使用-m参数;

如果想要删除某个文件的ACL,则可以使用-b参数;

 

getfacl命令:用于显示文件上设置的ACL信息

[root@linuxprobe ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:linuxprobe:rwx
group::r-x
mask::rwx
other::---

 

6.su命令与sudo服务

su命令:切换用户

[root@linuxprobe ~]# id 
uid=0(root) gid=0(root) groups=0(root)
[root@linuxprobe ~]# su - linuxprobe
Last login: Wed Jan 4 01:17:25 EST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ id 
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

sudo命令:给普通用户提供额外的权限来完成原本root管理员才能完成的任务

参数作用
-h列出帮助信息
-l列出当前用户可执行的命令
-u 用户名或UID值以指定的用户身份执行命令
-k清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b在后台执行指定的命令
-p更改询问密码的提示语

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值