mikuQ / miku

miku
GNU General Public License v3.0
2 stars 1 forks source link

Linux-基础概念 #44

Open mikuQ opened 3 months ago

mikuQ commented 3 months ago

基本权限

“文件/目录”的3个“用户合集” 属主(u) 属组(g) 其他(o)

“用户合集”的3个基本权限/对应的八进制值 读(r)4 写(w)2 执行(x)1

默认权限

目录的基本权限是 777(drwxrwxrwxrwx) 文件的基本权限为 666(-rw-rw-rw-)

“文件”基本信息

$ ls -l
-rwxrw----. 1 miku miku 2 Mar 2 08:43 file
-rwxrw----+ 1 miku miku 2 Mar 2 08:43 file

- 表示一般文件。 rwx 表示“属主”有“读、写、执行”权限。 rw- 表示“属组”有“读、写”权限,没有“执行”权限。 --- 表示“其他”没有“读、写、执行”权限。 . 表示为该文件设定了 SELinux 安全上下文。 + 表示为该文件设定了facl。 1 表示硬链接个数。 miku 表示归属于用户miku。 miku 表示归属于miku组。 2 表示文件大小。 Mar 2 08:43 表示文件内容修改日期/时间。 file 表示文件名。

“目录”基本信息

$ ls -ld directory
drwxr-----. 1 miku miku 2 Mar 2 08:43 directory

d 表示它是一个目录 r 权限表示您可以“列出”目录中的内容(文件、子目录)。 w 权限表示您可以在该目录中创建/删除“文件/目录”。 x 权限表示您可以使用 cd 命令进入该目录。 Mar 2 08:43 表示目录中的内容修改日期/时间。

符号法设置权限

删除属组(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

mikuQ commented 3 months ago

umask

查看umask当前值

umask -S #符号模式
umask #八进制

判断登录shell/非登录shell

文件的默认权限644

目录的默认权限755

umask计算方法

“文件”的实际"缺省权限"=666减去umask “目录”的实际"缺省权限"=777减去umask

umask值=666减去“文件”的实际"缺省权限" umask值=777减去“目录”的实际"缺省权限"

计算“umask”步骤 1.确定“缺省权限” 2.umask=666/777-缺省权限

mikuQ commented 3 months ago

用户/组

简介

用户

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设置账户/密码有效期

mikuQ commented 3 months ago

sudo

标准模版

<用户> <IP/域名>=(<以谁的身份>:<以哪个组的身份>) <命令绝对路径>
<%组> <IP/域名>=(<以谁的身份>:<以哪个组的身份>) <命令绝对路径>

使用示例

visudo
%miku        ALL=(ALL)       ALL #来自任意IP的miku组中的用户以root的身份运行任何命令
usermod -a -G miku <用户> #把用户加入miku组
id <用户>
mikuQ commented 3 months ago

facl

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
mikuQ commented 3 months ago

特殊权限

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

应用案例

SBIT

应用案例

ls -ld /tmp
drwxrwxrwt. 17 root root 4096 Oct 28 00:29 /tmp
su - miku
cd /tmp
rm -rf miku.txt

符号法设置特殊权限

数字法设置特殊权限

mikuQ commented 3 months ago

隐藏权限

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
mikuQ commented 3 months ago

atime/mtime/ctime

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
mikuQ commented 3 months ago

文件类型

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
mikuQ commented 2 months ago

环境变量

全局变量文件

用户变量文件

设置语言环境变量

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:~ #