Open mikuQ opened 3 months ago
umask 的第一个数字代表特殊权限(SUID位、SGID位、SBIT位),如果第一个数字设定为 0,则代表没有设置特殊权限位。umask 的最后三位数字分别代表属主(u)、属组(g)和其它(o)的权限掩码。
查看umask当前值
umask -S #符号模式
umask #八进制
判断登录shell/非登录shell
# echo $0
-bash
$ echo $0
bash
grep "UMASK" /etc/login.defs
grep umask /etc/bashrc
修改umask
echo 'umask 022' >> /home/用户名/.bashrc
HOME_MODE
文件的默认权限644
目录的默认权限755
umask计算方法
“文件”的实际"缺省权限"=666减去umask “目录”的实际"缺省权限"=777减去umask
umask值=666减去“文件”的实际"缺省权限" umask值=777减去“目录”的实际"缺省权限"
计算“umask”步骤 1.确定“缺省权限” 2.umask=666/777-缺省权限
简介
/etc/login.defs
中的UID_MIN
GID_MIN
`/etc/group
文件中用户
/etc/login.defs
中的UID_MIN
id #查看当前用户的UID/GID
useradd miku #创建用户
passwd miku #修改密码
usermod -a -G redhat miku #将用户添加到附加组
groups miku #验证用户加组
useradd -u 5000 miku #指定UID创建用户
groupadd -g 5000 redhat #指定GID创建组
tail /etc/group #查看组
mkdir miku #创建目录
groupadd redhat #创建组
usermod -a -G redhat miku #将用户添加到附加组
chgrp redhat miku #修改目录的属组
chown 用户:组 miku #同时修改目录的属主/属组
chmod g+rwxs miku #符号法修改目录的属组所拥有的权限(读写执行+SGID)
userdel miku #仅删除用户不删除数据
userdel -r -s miku #删除用户及家目录
rm -rf /var/lib/AccountsService/users/miku #删除用户元数据
组
groups miku #列出用户的组
miku : miku redhat #冒号前面是用户名/冒号后面第一个组miku是主组/redhat是补充组
miku : miku #用户 miku 仅有一个主组 miku,没有补充组。
groups miku #查看用户的组
usermod -g redhat miku #更改用户的主组
usermod -a -G oracle miku #给用户添加附加组
usermod -G oracle,apple,security miku #覆盖修改用户的补充组(同时添加多个附加组)
gpasswd -d miku oracle #从组中移除用户
chage设置账户/密码有效期
-l
显示当前有效期-M
设置密码有效天数-E
设置帐号有效期-h
查看帮助信息
chage -l root
chage -M 99999 root
visudo
/etc/sudoers
/etc/sudoers.d/
标准模版
<用户> <IP/域名>=(<以谁的身份>:<以哪个组的身份>) <命令绝对路径>
<%组> <IP/域名>=(<以谁的身份>:<以哪个组的身份>) <命令绝对路径>
使用示例
visudo
%miku ALL=(ALL) ALL #来自任意IP的miku组中的用户以root的身份运行任何命令
usermod -a -G miku <用户> #把用户加入miku组
id <用户>
setfacl选项
m
修改权限
b
删除全部权限
R
递归
查看facl
[root@RedHat ~]# getfacl miku.txt
# file: miku.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
设置facl
[root@RedHat ~]# setfacl -m g:miku:rwx miku.txt
[root@RedHat ~]# setfacl -m u:miku:rwx miku.txt
[root@RedHat ~]# getfacl miku.txt
# file: miku.txt
# owner: root
# group: root
user::rw-
user:miku:rwx
group::r--
group:miku:rwx
mask::rwx
other::r--
备份/恢复facl权限
getfacl -R miku > backup.acl
setfacl --restore backup.acl
rwxrwxrwx 421-421-421 777
SUID SGID SBIT 4-2-1 rwsrwsrwt 421-421-421-421 7777
设置SUID后,文件的u权限部分x变成s,如果原先u权限部分没有x执行权限则会被写成S。
设置SGID后,文件的g权限部分x变成s,如果原先g权限部分没有x执行权限则会被写成S。
设置SBIT后,文件的o权限部分x变成t,如果原先o权限部分没有x执行权限则会被写成T。
SUID
应用案例
[root@redhat ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 34512 Aug 13 2018 /bin/passwd
[root@redhat ~]# ls -l /etc/shadow
----------. 1 root root 1312 Jul 21 05:08 /etc/shadow
SGID
应用案例
[root@redhat ~]# ls -l /bin/ps
-r-xr-sr-x 1 bin system 59346 Feb 11 2017 ps
[root@redhat ~]# ls -l /dev/kmem
cr--r----- 1 root system 2, 1 Feb 11 2017 kmem
cd /tmp/
mkdir redhat
ls -ld redhat
chmod -R 777 redhat
chmod -R g+s redhat
ls -ld redhat
su - miku
cd /tmp/redhat
echo "SGID" > miku.txt
ls -l miku.txt
SBIT
应用案例
ls -ld /tmp
drwxrwxrwt. 17 root root 4096 Oct 28 00:29 /tmp
su - miku
cd /tmp
rm -rf miku.txt
符号法设置特殊权限
+
-
chmod u+s #设置SUID权限
chmod g+s #设置SGID权限
chmod o+t #设置SBIT权限
数字法设置特殊权限
chmod 4777 #设置SUID权限
ls -l
无法查看隐藏权限lsattr
chattr
chattr选项
i
无法删除该文件/无法修改该文件内容/对目录设置则仅能修改目录下文件的内容不能新建或删除文件
a
无法删除该文件/仅允许追加(Append Only)内容无法删除内容
s
彻底删除不可恢复(用0填充)
chattr +i miku.txt
chattr +a miku.txt
ls -l miku.txt
lsattr miku.txt
应用案例
ls -l /var/log/messages
atime/mtime/ctime
atime
(access time/访问时间)文件内容最后被读取的时间mtime
(modify time/修改时间)文件内容最后被修改的时间ctime
(change time/更改时间)文件属性最后被修改时间(属主|属组|一般权限|特殊权限|隐藏权限|facl)atime
mtime/ctime
ctime
ls -l
显示的时间为mtime
stat
[root@RedHat ~]# stat miku.txt
文件:miku.txt
大小:25 块:8 IO 块:4096 普通文件
设备:811h/2065d Inode:67173846 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2024-08-26 12:11:06.056649658 +0800
最近更改:2024-08-21 00:11:13.534937680 +0800
最近改动:2024-08-28 09:05:28.613061284 +0800
创建时间:2024-08-21 00:11:13.533937680 +0800
文件类型
-
f
普通(常规)文件(文本文件/压缩包/二进制程序/图片/音频/视频)d
目录文件l
符号链接文件b
块设备文件c
字符设备文件p
管道文件s
套接字文件file
[root@RedHat ~]# ls -l
drwxr-xr-x. 2 root root 53 8月 26 16:52 downloads
-rw-r--r-- 1 root root 6657089 8月 15 16:14 fastfetch-linux-amd64.rpm
-rw-r--r--. 1 root root 25 8月 21 00:11 miku.txt
[root@RedHat ~]# file miku.txt
miku.txt: ASCII text
[root@RedHat ~]# file fastfetch-linux-amd64.rpm
fastfetch-linux-amd64.rpm: RPM v3.0 bin i386/x86_64 fastfetch-2.21.3-1
[root@RedHat ~]# file downloads
downloads: directory
find
[root@RedHat ~]# find / -type
b c d f l p s
全局变量文件
/etc/profile
/etc/bash.bashrc
用户变量文件
/home/miku/.bashrc
/home/miku/.profile
设置语言环境变量
export LANG=zh_CN.utf8
export LC_ALL=zh_CN.utf8
echo 'export LANG=zh_CN.utf8' >> /root/.bashrc
echo 'export LC_ALL=zh_CN.utf8' >> /root/.bashrc
echo 'export LANG=zh_CN.utf8' >> /root/.profile
echo 'export LC_ALL=zh_CN.utf8' >> /root/.profile
列出所有可用的语言locale -a
suse:~ # locale -a
en_US.utf8
zh_CN.utf8
suse:~ #
列出当前语言locale
suse:~ # locale -a
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8
suse:~ #
基本权限
“文件/目录”的3个“用户合集” 属主(u) 属组(g) 其他(o)
“用户合集”的3个基本权限/对应的八进制值 读(r)4 写(w)2 执行(x)1
默认权限
目录的基本权限是 777(drwxrwxrwxrwx) 文件的基本权限为 666(-rw-rw-rw-)
“文件”基本信息
-
表示一般文件。rwx
表示“属主”有“读、写、执行”权限。rw-
表示“属组”有“读、写”权限,没有“执行”权限。---
表示“其他”没有“读、写、执行”权限。.
表示为该文件设定了 SELinux 安全上下文。+
表示为该文件设定了facl。1
表示硬链接个数。miku
表示归属于用户miku。miku
表示归属于miku组。2
表示文件大小。Mar 2 08:43
表示文件内容修改日期/时间。file
表示文件名。“目录”基本信息
d
表示它是一个目录r
权限表示您可以“列出”目录中的内容(文件、子目录)。w
权限表示您可以在该目录中创建/删除“文件/目录”。x
权限表示您可以使用 cd 命令进入该目录。Mar 2 08:43
表示目录中的内容修改日期/时间。符号法设置权限
ls -l 文件
ls -ld 目录
ls -l 目录
权限:读(r)、写(w)、执行(x) 合集:属主 (u)、属组(g)、其他 (o)、所有 (a) 操作:+ 在现有权限之上添加权限、- 从现有权限中删除权限、= 直接设置目标权限覆盖掉现有权限删除属组(g)、其他 (o)的读(r)、写(w)、执行(x)权限:
chmod go= miku.txt
添加其他 (o)的读(r)、执行(x)权限:chmod o+rx miku
给属主 (u)、属组(g)、其他 (o)设置满权限:chmod ugo=rwx miku
给属主 (u)、属组(g)、其他 (o)设置满权限:chmod a=rwx miku
数值法设置权限
给属主 (u)、属组(g)、其他 (o)设置满权限:
chmod 777 miku