文章目录
- 一、用户
- 二、文件
一、用户
1、Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制 。
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
2、su指令
(1)功能
su指令是Linux系统中用于切换用户身份的重要命令。
(2)语法
su [选项] [用户名]
(3)常用选项
-c:在切换用户身份后执行指定的命令,然后退回到原始用户身份。例如,su -c “ls /root” username会在切换到username用户后执行ls /root命令,然后退出。
-l 或 -:模拟用户登录过程,加载目标用户的环境变量和shell配置文件,如同用户真正登录一样。如果不带用户名,则默认切换到root用户。例如,su -或su -l会切换到root用户,并加载root的环境变量。
-s:指定切换用户后要使用的shell。例如,su -s /bin/bash username会在切换到username用户后,使用bash作为其shell。
-m 或 -p 或 --preserve-environment:在切换用户时保留当前用户的环境变量,不改变环境变量。这个选项与-l是互斥的,通常不建议同时使用。
-u:指定要切换到的目标用户ID或用户名。例如,su -u 1000或su -u username。
–help:显示su命令的帮助信息。
–version:显示su命令的版本信息。
(4)举例
由普通用户切换到root用户。
su - //或者su
由root用户切换到普通用户,并且回到普通用户的家目录下。
su -l xzy
3、添加和删除普通用户
只能在root账户下添加新普通用户,或者使用sudo指令提权。
命令:
添加普通用户。
adduser 用户名
设置密码,系统会提示我们输入两次密码。
passwd 用户名
删除普通用户。
userdel 用户名
如果想要同时删除用户的主目录和邮件目录,可以添加-r(或–remove)选项: userdel -r 用户名。
4、查看当前用户
普通账户的目录都存在家目录的/home
中。
cd /home
5、查看当前用户是谁和登录信息
(1)whoami 命令
whoami 命令用于显示当前用户的用户名。这是最直接和常用的方法之一。
whoami
(2)who命令
who
命令显示当前登录系统的所有用户的信息,包括用户名、登录终端、登录时间等。虽然这不是直接查看当前用户的方法,但它可以让你了解当前系统上有哪些用户登录。
who
6、sudo指令
(1)介绍与功能
sudo(superuser do 或 substitute userdo)是Linux和类Unix系统中一个非常有用的命令,它允许系统管理员授权某些用户(或用户组)以另一个用户的安全权限(通常是root用户)来运行命令。这与su命令(switch user 或 substitute user)的主要区别在于,sudo不需要知道目标用户的密码(如root),而是需要知道当前用户的密码,并且该用户必须被/etc/sudoers文件明确授权。
(2)给普通用户授权
步骤:在根目录下打开etc/sudoers
文件,然后找到下面更改,就可以了。
用户名 ALL=(ALL) ALL
(3)特点
(1)安全性:sudo提供了比su更高的安全性,因为它允许管理员精确地控制哪些用户(或用户组)可以运行哪些命令。
(2)审计追踪:所有通过sudo执行的命令都会被记录在日志中(通常是/var/log/auth.log或/var/log/secure),这使得系统管理员可以追踪哪些用户何时执行了哪些命令。
(3)无密码操作:在某些情况下,管理员可以配置/etc/sudoers文件,使得某些用户或用户组在特定条件下执行特定命令时无需输入密码。
(4)限制用户行为:通过/etc/sudoers文件,管理员可以限制用户只能执行某些命令,甚至只能以特定的用户身份执行这些命令。
(4)语法
sudo [选项] [命令]
(5)常用选项
-i,–login:以目标用户(通常是root)的身份登录shell。这与su -相似。
-u <用户>:以指定的用户身份执行命令。默认情况下,sudo会以root用户身份执行命令。
-l:列出当前用户可以执行的命令。
-v:验证用户的密码,并在用户下次使用sudo时不会要求再次输入密码(这取决于sudo的配置)。
(6)举例
使用普通用户执行需要root用户的命令。
sudo cat test.txt //假设该命令普通用户无法执行
按下回车后需要输入当前用户密码。
二、文件
1、文件包含什么?
文件 = 文件内容 + 文件属性
文件内容:文件内容通常指的是存储在文件中的数据或信息。
文件属性:如作者、文件大小、权限(读写执行)等。
2、文件访问者的分类
文件和文件目录的所有者:u—User 。
文件和文件目录的所有者所在的组的用户:g—Group 。
其它用户:o—Others。
3、Linux下的文件属性
(1)文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
(2)基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 。
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 。
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
(3)Linux下权限的表示
对于普通文件:
字符表示:
rw-
具有读写的权限但不具有执行的权限 。
八进制表示:110
具有读写的权限但不具有执行的权限。
补充:能否执行一个文件不仅需要看执行权限,还需要看当前文件是否有执行的能力。
4、文件访问权限的相关设置方法
说明:只有文件的拥有者和root才可以改变文件的权限。
(1)chmod指令
功能:
设置文件的访问权限。
语法:
chmod [选项] 权限 文件名
常用选项
R -> 递归修改目录文件的权限。
权限
用户表示符+/-=权限字符
实例:
+:向权限范围增加权限代号所表示的权限 。
-:向权限范围取消权限代号所表示的权限 。
=:向权限范围赋予权限代号所表示的权限 。
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
举例
设置其他用户也能读写文件file.txt
chmod o+rw file.txt
使用3位8进制数字修改文件权限
举例
将所有者的权限设置为读写,所属组和其他用户设置为只读。
chmod 644 file.txt
(2)chown指令
功能
修改文件的拥有者。
语法
chown [选项] 用户名 文件名
常用选项
-R 或 --recursive: 递归地更改指定目录及其内部所有文件和子目录的所有者。
举例
修改文件file.txt
的拥有者为用户xu
chown xu file.txt
递归的修改目录dir
的拥有者为xu
chown -R xu dir
(3)chgrp 指令
功能
修改文件或目录的所属组。
语法
chgrp [选项] 用户组名 文件名
常用选项
-R 递归修改文件或目录的所属组。
举例
修改文件file.txt
所属组为xu
chgrp xu file.txt
修改目录dir
的所属组为root
sudo chgrp -R root dir
普通用户将文件修改为root用户时需要越权处理。
(4)umask指令
功能
查看或修改文件掩码。
说明:
(1) 新建文件夹默认权限=0666 ,新建目录默认权限=0777。
(2)但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask 。
(3)超级用户默认掩码值为0022,普通用户默认为0002。
语法
umask 权限值
举例
查看文件掩码
umask
修改文件掩码为0001
umask 0001
(5)file指令
功能
它通过分析文件的头部信息或内容来识别文件类型,而不是仅仅依赖于文件的扩展名。
语法
file [选项] 文件或目录...
常用选项
-c :详细显示指令执行过程,便于排错或分析程序执行的情形。
-z :尝试去解读压缩文件的内容。
举例
查看文件file.txt
的文件类型。
file file.txt
查看压缩文件的类型
file file.zip
5、粘滞位
(1)介绍
在Linux系统中,粘滞位(Sticky Bit)是一个特殊的权限标志,它主要用于目录上,以保护目录中的文件不被非所有者用户随意删除或重命名。粘滞位是Unix文件系统权限的一个旗标,首次引入是在Unix的第5版中,但最初并不是用于目录保护,而是用于设置可执行文件。不过,随着Unix和Linux系统的发展,粘滞位的主要应用逐渐转变为对目录的保护。
(2)功能
(1) 保护目录中的文件:当目录设置了粘滞位后,只有该目录的所有者、文件的所有者或超级用户(root)才能删除或重命名该目录下的文件或子目录。这有助于防止非文件所有者用户误删或误操作重要文件。
(2)提升系统安全性:在公共目录(如/tmp)中设置粘滞位,可以防止普通用户删除或移动其他用户的临时文件,从而保护系统的稳定性和安全性。
(3)设置粘滞位
chmod +t 目录名
(4)注意事项
(1)粘滞位只对目录有效,对文件无效。
(2)粘滞位只能防止文件被非所有者用户删除或重命名,但不能阻止其他用户读取、写入或执行文件(具体取决于文件的其他权限设置)。
(3)粘滞位不能阻止其他用户往该目录中添加新的文件或子目录。
(4)只有目录的所有者、文件的所有者或超级用户(root)才能删除或重命名设置了粘滞位的目录中的文件或子目录。