Linux基础汇总===》打包与压缩 用户管理 权限管理 su切换用户与sudo提权

本文详细介绍了Linux系统中不同类型的文件打包压缩工具,如zip、tar等,及其使用方法,包括压缩、解压和相关选项。同时,文章深入探讨了Linux用户和权限管理,包括用户ID、用户组、用户创建与删除、权限修改等,并讨论了文件和目录的权限设置、特殊权限如SUID以及ACL权限。此外,还涉及到了su和sudo命令的使用区别。
摘要由CSDN通过智能技术生成

打包和压缩

  • 将文件或文件夹合并成一个包,然后通过压缩算法进行数据压缩,减小包的体积,方便传输。
windows: 
	zip 
	rar
Linux:
	zip
	tar
	gz
	bz2
	tar.gz
	tar.bz2

压缩算法:
	gzip
	bzip2
- zip
是一个windows和linux中常的打包压缩工具,支持压缩算法是zip。
zip工具需要安装
yum -y install zip unzip

cd /root
zip压缩文件与文件夹
zip压缩一个文件(默认压缩在当前目录下)
格式 zip 压缩包名称 文件路径
zip a.zip a.txt				将当前目录下的a.txt文件压缩成a.zip格式的压缩包
#  adding: a.txt (stored 0%)		deflated压缩节约了多少空间(百分比)
ls -l
# -rw-r--r--  1 root root  164 Mar 28 17:35 a.zip
# -rw-r--r--  1 root root    4 Mar 27 20:49 a.txt

zip压缩目录	
格式 zip [选项] 压缩包名称 文件路径
需要一个-r参数,不加-r默认只压缩目录本身 (-r递归压缩)
zip -r opt.zip /opt			将/opt目录压缩成opt.zip格式的压缩包(-r递归压缩)
zip -r -q opt.zip /opt		-q 不显示压缩过程信息
ls 
# opt.zip

zip解压命令
格式 unzip [选项] 压缩路径
unzip解压命令只能解压由zip打包的压缩文件,其他压缩包由unzip解压时会报错
unzip opt.zip				默认解压到当前目录下
ls
# opt  opt.zip
unzip opt.zip -d /root				解压到指定目录下
ls /root
# opt

选项
-l:只查看解压内容,不进行解压
unzip -l  opt.zip


- tar
tar其实是一个打包工具,不具备压缩功能,但是可以使用参数调用压缩工具来进行解压
选项
-c:创建压缩包
-f:指定压缩包名称(-f后面指定的必须是压缩包的名称)
tar -c -z a.tar a.txt			创建一个a.tar压缩包,并没有指定压缩工具
ls -l
# -rw-r--r--  1 root root    10240 Mar 28 21:26 a.tar
# -rw-r--r--  1 root root        4 Mar 27 20:49 a.txt

-z:指定gzip压缩工具进行压缩
tar -c -z -f A.tar.gz a.txt		指定gzip的压缩工具进行压缩
# -rw-r--r--  1 root root      118 Mar 28 21:31 A.tar.gz
# -rw-r--r--  1 root root        4 Mar 27 20:49 a.txt
注: 使用-z参数,不会自动添加.gz后缀

-j:指定bzip2压缩工具进行压缩
tar -c -j -f B.tar.bz2 a.txt
# -rw-r--r--  1 root root      120 Mar 28 21:40 B.tar.bz2

-J:指定xz压缩工具进行压缩
tar -c -j -f C.tar.xz a.txt
# -rw-r--r--  1 root root      176 Mar 28 21:47 C.tar.xz

-t:查看压缩包内容
tar -t -f A.tar.gz
# a.txt

-v:显示压缩包压缩和解压的过程
tar -c -v -f  D.tar a.txt
# a.txt

-P:允许使用绝对路径进行打包
tar -P -cvf F.tar /etc/passwd		不加-P无法打包绝对路径下的文件或者目录
# /etc/passwd

-x:解压时是按照原来的路径进行解压
tar -x -v -f F.tar		不加-P是会报错的,无法解压到原路径的绝对路径下
# tar: Removing leading `/' from member names
tar -P -x -v -f F.tar
# /etc/passwd
注:tar会自动识别压缩功能

-C:指定解压路径
tar -x -v -f F.tar -C /opt			将当前路径下的F.tar解压到/opt目录下
# a.txt
ls /opt
# a.txt

-h:打包软链接
tar -c -z -h -f A.tar.gz etc/grub.cfg			-h打包软链接

--exclude:排除某些文件进行打包
mkdir /abc
touch /abc/a{1..9}
cd /abc
tar -c -f A.tar ./* --exclude=a3 --exclude=a8			打包除了a3,a8以外的所有其他文件
tar -tf A.tar				
# ./a1
# ./a2
# ./a4
# ./a5
# ./a6
# ./a7
# ./a9

--exclude-from:根据某个文件列表排除多个文件
cat /root/a.txt							查看a.txt内容
# a1	
# a2
# a3
tar -c -f B.tar ./* --exclude-from=/root/a.txt		创建一个B.tar的压缩包,排除/root/a.txt的内容
tar -tf B.tar							查看B.tar压缩包的内容
# ./a4
# ./a5
# ./a6
# ./a7
# ./a8
# ./a9

用户管理

  • linux中用户介绍
    什么是用户?
  1. 用户其实就是相当于权限的化身
  2. 处于安全考虑
  3. 所有我们在进入系统之前都需要登陆,根据用户给相应的权限
  • Linux系统中用户角色
  1. uid : Linux系统中当前用户ID(相当于身份证号)
  2. gid : 组ID,统一某一类用户权限

设置用户组的配置文件路径 : /etc/group
在这里插入图片描述

id root  		查看当前用户的uid和gid
# uid=0(root) gid=0(root) groups=0(root)

who					查看当前系统登陆的用户信息
# root     pts/0        2021-03-29 08:39 (192.168.80.1)
whoami					查看当前登陆的用户信息
# root

cat /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# bin:x:1:1:bin:/bin:/sbin/nologin
# 用户名:密码占位符:UID:GID:注释信息:家目录:默认使用解析器

如何判断一个用户是否能登陆???
查看/ect/passwd文件,/bin/bash结尾的用户是可以登陆的,
/sbin/nologin结尾的用户是不可以登陆的。

Centos7系统的规定
UID:0 由超级用户或具备超级用户权限的用户创建用户
UID:1-200 系统用户,用来运行系统自带的进程,默认已创建
UID:201-999 系统用户,用来运行安装的程序,所有此类用户无需登陆系统
UID:500-65535 普通用户,正常1可以登陆系统的用户,权限比较小,能执行的任务有限

用户组添加用户
useradd nana
vim /etc/group						设置用户组的配置文件路径
#	postfix:x:89:
#	ntp:x:38:
#	nana:x:1000:root				将用户root添加至nana组
id root								查看用户root的uid和gid
# uid=0(root) gid=0(root) groups=0(root),1000(nana)
  • 超级用户
  1. Linux : root
  2. Windows : administrator
  • 用户与组相关文件
  • 我们在使用useradd命令创建用户,其实就是在以下文件中添加了一些数据,更加验证了Linux系统中一切皆文件的思想。
cat /etc/passwd				用户基本信息文件	
# root:x:0:0:root:/root:/bin/bash
# bin:x:1:1:bin:/bin:/sbin/nologin
# 用户名:密码占位符:UID:GID:注释信息:家目录:默认使用解析器
	
cat /etc/shadow				密码详情文件
# root:$6$EFzDufv.OgY8.Zl1$aOYWcFk/lOrfvzpaLaHyA/MQnchZAF.QgkpbFWFrb/GTPYRMO7kSMy9wMl4TgAkkwCzAEL.8qv.fK1EaN/gMq1::0:99999:7:::
# sshd:!!:18689::::::
# 用户名称:密码(!!表示没有密码):最近一次密码变更时间(1970年到现在过了多少天):密码最少使用天数(0表示无限制):密码最长使用天数(99999表示限制):密码过期预警天数:密码过期后没有修改密码,用户还可以使用的天数:账户失效日期(过了这个日期账号旧无法使用):保留,没有被使用

vim /etc/group					用户组相关文件
# root:x:0:	
# bin:x:1:
# 用户组的名称:用户组的密码占位符:用户组的ID/GID:给该组添加其他用户(多个逗号分割)

vim /etc/gshadow				用户组密码文件
# root:::
# bin:::
# 用户组的名称:组密码:组的管理者:给该组添加其他用户(多个逗号分割)

ls -A /etc/skel/				用户家目录模板文件
# .bash_logout  .bash_profile  .bashrc
ls -a /root/
# .bash_logout  .bash_profile  .bashrc ...

ls /home/xxx					普通用户家目录		
# nana test dada
  • 用户创建与删除useradduserdel
格式:
useradd 用户名	
选项: 
-u(指定用户的UID)		-g(指定用户所属的主群)		-G(指定用户所属的附加群)
-d(指定用户的家目录)	-c(指定用户的备注信息)		-s(指定用户所用的shell)
-e(修改过期时间)		-M(不创建家目录)		-r(创建系统账户,uid处于系统用户范围内,默认没有家目录)
useradd nana		创建用户
ls /home/			查看普通用户家目录
# nana
userdel nana				删除用户,但是用户的家目录还在
userdel -r nana    			彻底删除用户(连着用户家目录一起删除)
  • 修改用户信息usermod
    修改用户信息最主要的命令是usermod命令,其参数跟useradd基本一致
· 修改UID(-u)
usermod -u 2000 nana			将用户nana的uid修改成2000
cat /etc/passwd							
# nana:x:2000:1000::/home/nana:/bin/bash

· 修改基本组及附加组
id
# uid=0(root) gid=0(root) groups=0(root),1000(nana)
基本组(-g) : 一个用户必须拥有的组
groupadd group1						创建附加组group1
id nana					查看用户uid和gid
# uid=2000(nana) gid=1000(nana) groups=1000(nana)
usermod -g group1 nana				修改用户nana的基本组
cat /etc/passwd | grep nana
# nana:x:2000:1006::/home/nana:/bin/bash

附加组(-G) : 用户加入的其他用户组,覆盖添加附加组
id									查看用户uid和gid
# uid=0(root) gid=0(root) groups=0(root),1000(nana)
usermod -G group1 root					给root用户添加附加组group1
cat /etc/group | grep group1				
# group1:x:1006:root
usermod -G dudu root
cat /etc/group | grep root				dudu组直接覆盖掉了group1组
# dudu:x:1001:root

· 追加(-a)	
usermod -a -G group1 root
cat /etc/group | grep root
# dudu:x:1001:root
# group1:x:1006:root

· 修改家目录(-d)
usermod -d /home/nanammd nana			-d讲用户nana的家目录修改成nanammd
cat /etc/passwd | grep nana
# nana:x:2000:1006::/home/nanammd:/bin/bash
注:修改家目录仅仅修改了配置,而原来的家目录文件没有迁移

· 修改用户描述信息(-c)
usermod -c "对象呢" nana
cat /etc/passwd | grep nana
# nana:x:2000:1006:对象呢:/home/nanammd:/bin/bash

· 修改用户默认解释器(-s)
usermod -s /bin/sh nana
cat /etc/passwd | grep nana
# nana:x:2000:1006:对象呢:/home/nanammd:/bin/sh

· 用户的锁定和解锁(-L)(-U)
usermod -L nana			锁定用户登陆(锁定之后,用户无法登陆)
usermod -U nana			解锁用户登陆

· 修改登陆名称(-l)
usermod -l baobao nana 			将用户nana的名称修改成baobao
cat /etc/passwd | grep baobao			
# baobao:x:2000:1006:对象呢:/home/nanammd:/bin/sh
  • 密码passwd
    修改或添加Linux普通用户的密码,直接影响的文件是/etc/shadow
passwd dudu						增加或修改用户dudu的密码
# Changing password for user dudu.
# New password: 
# BAD PASSWORD: The password is shorter than 8 characters
# Retype new password: 
# passwd: all authentication tokens updated successfully.
cat /etc/shadow | grep dudu				查看密码文件
# dudu:$6$mKjPIzL3$xozMdtSepGBW4FiLWagZmf0yf75f1RcZlQhzxSFWD./rvVymaLOoHF1XcnJtqyMrs9i2eCztaQD5gckoCDktN0:18715:0:99999:7:::

· 免交互修改密码
echo "1" | passwd --stdin dudu
# Changing password for user dudu.
# passwd: all authentication tokens updated successfully.
  • 创建组groupadd
groupadd a1   					 创建基本组,不指定gid
tail -1 /etc/group
# a1:x:1008:

· 指定gid(-g)
groupadd -g 2222 a2			     创建基本组,指定gid为2222
tail -1 /etc/group
# a2:x:2222:

· 创建系统组(-r)
groupadd -r a3				     创建系统组,gid从201-999(201-999 系统组,用来运行安装的程序,所有此类用户无需登陆系统)
tail -1 /etc/group	
# a3:x:996:
  • 修改组groupmod
· 修改组名称(-n)
groupmod -n AAA a3					将组名a3修改成AAA
tail -1 /etc/group 						
# AAA:x:996:

· 修改gid(-g)
groupmod -g 1888 AAA
tail -1 /etc/group
# AAA:x:1888:
  • 删除组groupdel
groupdel group1				无法删除,group1被baobao占用
# groupdel: cannot remove the primary group of user 'baobao'
id baobao					baobao的基本组为group1
# uid=2000(baobao) gid=1006(group1) groups=1006(group1),0(root)
注:用户组在系统中删除,如果一个组被用户占用则不能删除

groupdel a1					a1没有被占用,可以直接删除组a1
# 成功删除

useradd lala
tail -1 /etc/group
# lala:x:2001:
userdel -r lala				完全删除用户lala
cat /etc/group
# 用户组lala也被删除了
注: 用户被删除,基本组也会被删除
  • 组成员管理
· 添加一个用户到组(gpasswd -a)
useradd test1
id test1
# uid=2001(test1) gid=2001(test1) groups=2001(test1)
gpasswd -a test1 group1					将用户test1添加到group1组中
# Adding user test to group group1
id test1
# uid=2001(test1) gid=2001(test1) groups=2001(test1),1006(group1)

· 添加多个用户到组(gpasswd -M)
gpasswd -M test,root group1				将用户test,root添加到group1组中
id test
# uid=1003(test) gid=1003 groups=1003,1006(group1)
id root
# uid=0(root) gid=0(root) groups=0(root),1006(group1)

· 为一个组添加管理者(gpasswd -A )
cat /etc/group | grep AAA
# AAA:x:1888:
gpasswd -M root,test,dudu AAA			 		(-M)添加root,test,dudu用户到组AAA4中
cat /etc/gshadow | grep AAA							查看AAA用户组密码文件
# AAA:!::root,test,dudu				
gpasswd -A test AAA								(-A)添加test为组AAA的管理者
cat /etc/gshadow | grep AAA								
# AAA:!:test:root,test,dudu

· 组管理者的权限(组长有权限向组内添加新用户,其他用户除root以外没有权限向组添加新用户)
su - test						切换到用户test
# Last login: Mon Mar 29 11:17:21 CST 2021 on tty1
# /usr/bin/id: cannot find name for group ID 1003
gpasswd -a LALA AAA					以组管理者的身份将LALA添加至组AAA
# Adding user LALA to group AAA

· 组权限
touch /opt/a.txt
ls -l /opt/a.txt
# -rw-r--r-- 1 root root 4 Mar 29 18:12 /opt/a.txt
chown :AAA /opt/a.txt		修改/opt/a.txt所属组为AAA
ls -l /opt/a.txt				
# -rw-r--r-- 1 root AAA 4 Mar 29 18:12 /opt/a.txt
chmod g+w /opt/a.txt		修改组权限为读写权限
cat /etc/group | grep AAA
# AAA:x:1888:root,test,dudu,LALA
su - dudu						切换到用户dudu
echo 456 > /opt/a.txt		将456写入/opt/a.txt
cat /opt/a.txt						
# 456
注: 用户组AAA对于a.txt的读写权限,用户组下的所有组员都可以对a.txt都具备读写权限

权限管理

  • 权限的概念
d  			rwx 		  	r-x    			 r-x
目录			所属用户权限		所属组权限		 其他用户权限
  • 基本权限介绍
r : 可读 => 4
w : 可写 => 2
x : 可执行 => 1 
- : 没有权限 => 0
  • 权限归属
属主 : u
属组 : g
其他人 : o
所有人 : a
  • 权限的设置(chmod)
  • 目录默认权限755,文件默认权限644
自己和所属组拥有可读可写权限,其他人拥有可读权限
chomd u=rw,g=rw,o=r a.txt
chmond 664 a.txt

chmod -R 744 /a			给目录a递归设置权限
  • 权限对于目录下文件可读的影响
    · 要想查看目录下的文件内容,目录和子目录都至少拥有可执行权限,文件本身至少需要可读权限
useradd sb
mkdir /a/b/c
echo 123 > /a/b/c/a.txt		
chmod -R 001 /a
chmod 004 /a/b/c/a.txt

su - sb
cat /a/b/c/a.txt
# 123

·权限对于目录下文件可编辑的影响

  • 要想目录下的文件内容可以被写入 echo,目录和子目录至少拥有可执行权限,文件本身至少拥有可写的权限
mkdir -p /a/b/c
echo 123 > /a/b/c/a.txt
chmod -R 001 /a						创建目录/a的递归可执行权限
chmod 002 /a/b/c/a.txt				创建/a/b/c/a.txt的可写权限
ls -l /a/b/c/a.txt
# --------wx 1 root root 4 Mar 29 20:44 /a/b/c/a.txt

su - sb 
echo 456 > /a/b/c/a.txt				只有写权限
  • 要想目录下的文件内容可以被写入 vim,目录和子目录至少拥有可执行权限,文件本身至少拥有可写可读权限
chmod -R 001 /a 					创建/a递归可执行权限
chmod 006 /a/b/c/a.txt 				创建/a/b/c/a.txt的读写权限

su - sb
vim /a/b/c/a.txt					可写可保存,但是不能执行(写入后可以用wq保存)
  • 要想目录下的文件本身可以被编辑 mv rm,目录和文件本身至少拥有可执行可写的权限
chmod -R 003 /a						创建目录/a递归可写可执行权限
chmod 003 /a/b/c/a.txt				创建/a/b/c/a.txt的可写可执行权限

su - sb
mv /a/b/c/a.txt	/a/b/c/b.txt	
rm -rf /a/b/c/b.txt	

· 权限对于目录下文件可执行的影响

  • 要想目录下的文件内容可以被执行,目录和文件本身都必须要拥有可读可执行权限(5)

文件权限之特殊权限

  • SUID
普通用户不是root也不属于root组,于是它对/etc/shadow文件没有任何权限
ll /etc/shadow						查看密码文件
# ---------- 1 root root 629 Mar 29 20:41 /etc/shadow

但是普通用户却可以用passwd命令修改密码,而修改密码都是在修改/etc/shadow文件,如何实现的?
su - test
passwd 								切换用户是可以修改密码的
# Changing password for user test.
# Changing password for test.
# (current) UNIX password: 
# New password: 
# Retype new password: 
# passwd: all authentication tokens updated successfully.

which passwd
# /usr/bin/passwd
ll /usr/bin/passwd						查看passwd执行文件权限,用户权限有个s。
# -rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd
  • s权限 4 的特殊之处
    · 临时提权
  • 作用对象必须是二进制文件
    
  • 该文件必须拥有可执行权限
    
权限位置
s(4) : 临时提权 chmod 4755 a.txt		# a.txt文件内容必须是二进制文件,该文件必须拥有可执行权限

权限管理umask

umask就是解决目录及文件的默认权限。
· 文件的最高权限是777
· 目录的最高权限是666

在umask影响下

  • 文件权限的计算方法 : 偶数位直接相减,奇数位相减后加一
文件的起始权限值 : 666		umsk : 022      偶数直接相减即可(666-022 = 644)	
文件的起始权限值 : 666		umsk : 033      偶数直接相减,奇数位相减后在其原奇数位加1(666-033 = 6[3+1][3+1] = 644)
文件的起始权限值 : 666		umsk : 325      偶数直接相减,奇数位相减后在其原奇数位加1(666-325 = [3+1]4[1+1] = 442)
  • 目录权限计算方法 : 不分奇偶数
目录起始权限值 : 777  	umask : 032 	直接相减(777-032 = 745)
  • umask 设置文件或者目录权限
- 临时设置
umask 034 	目录权限为:743	文件权限为:642
目录:
mkdir abc
ls -ld abc			权限为743
# drwxr---wx 2 root root 6 Mar 30 09:42 abc
文件:
touch A.txt
ll A.txt			权限为642
# -rw-r---w- 1 root root 0 Mar 30 09:44 A.txt

- 永久设置
vim /etc/profile
	if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
	# UID大于199的umask权限
	    umask 002		# 普通用户
	else
	    umask 022		# root用户
	
source /etc/profile			# 重载/etc/profile	

ACL权限

  • ACL是为了解决某种特殊环境下的,用户的权限需求。
    · setfacl : 设置acl权限
    · getfacl : 查看acl权限
- ACL权限归属
· u : 指定用户
· g : 指定组
· o : 修改其他用户权限 
· m : 指定mask权限			mask权限是acl的权限控制(mask权限会根据权限的更改而变化)

setfacl -m u:用户名称:权限(rwx) 文件名称		# 设置用户权限
setfacl -m g:组名称:权限(rwx) 文件名称			# 设置组权限
setfacl -m o:权限(rwx) 文件名称			# 设置其他人权限
setfacl -m m:权限(rwx) 文件名称			# 设置mask权限

- ACL权限的删除
setfacl -x u:用户名称 文件名称			删除某一个用户权限
setfacl -x g:组名称 文件名称			删除某一个组权限
setfacl -b 文件名称				清空所有acl权限

getfacl 文件名称
注 : 默认情况下,ACL权限跟普通权限保持一致
mkdir -p /a/b/c				
touch /a/b/c/a.txt
chmod -R 001 /a						目录可执行权限
chmod 000 /a/b/c/a.txt					a.txt没人任何权限

setfacl -m u:test:r /a/b/c/a.txt		给普通用户test设置可读权限
ll /a/b/c						+ 表示a.txt有acl附加权限
# total 4
# ----r-----+ 1 root root 4 Mar 30 10:31 a.txt

getfacl /a/b/c/a.txt				查看a.txt的acl权限
# getfacl: Removing leading '/' from absolute path names
# file: a/b/c/a.txt
# owner: root
# group: root
# user::---
# user:test:r--
# group::---
# mask::r--				mask权限是acl的权限控制
# other::---

查看文件
su - test
cat /a/b/c/a.txt			可以查看a.txt的内容
  • ACL继承( -d )
· 子目录或者文件继承父目录的ACL权限
mkdir -p /haha/hehe
setfacl -m u:test:rw /haha/hehe/				设置用户test对于目录/haha/hehe具备读写权限
setfacl -m d u:test:rw /haha/hehe/				设置用户test对于目录/haha/hehe/的ACL继承权限
touch /haha/hehe/66.txt				创建66.txt
ll /haha/hehe/66.txt				(+) 继承了acl目录的权限
# -rw-rw-r--+ 1 root root 0 Mar 30 11:53 /haha/hehe/66.txt
getfacl /haha/hehe/66.txt	
# getfacl: Removing leading '/' from absolute path names
# file: haha/hehe/66.txt
# owner: root
# group: root
# user::rw-
# user:baba:rw-
# group::r-x			#effective:r--
# mask::rw-
# other::r--		

文件属性的权限控制

lsattr					 查看文件属性权限
chattr +a  				 允许追加内容
chattr +i 				 禁止任何修改(有些病毒程序会对文件设置i的属性权限)
charrr +A			   	 不更改文件访问时间
useradd nana
touch /s.txt
chown nana:nana /s.txt
ll /s.txt
# -rw-r--r-- 1 nana nana 0 Mar 30 12:18 /s.txt
lsattr /s.txt				查看s.txt的文件属性权限
# ---------------- /s.txt


· 属性设置
(+a) 允许追加内容
touch /s.txt
chattr +a /s.txt		允许追加内容
lsattr /s.txt
# -----a---------- /s.txt

(+i) 禁止任何修改
chattr +i /s.txt			属性权限设置禁止任何修改	
lsattr /s.txt				查看文件属性权限
# ----ia---------- /s.txt

su - nana 
ll /s.txt						s.txt用户与用户组都具备rwx权限
# -rwxrwx--- 1 nana nana 8 Mar 30 12:29 /s.txt
echo 123 > /s.txt				写入内容失败(对文件属性设置了禁止修改)
# -bash: /s.txt: Permission denied


chattr +A /s.txt		不更改文件访问时间
lsattr /s.txt			查看s.txt的文件属性权限
# ----ia-A-------- /s.txt

su - nana
cat /s.txt			
# 123

stat /s.txt				查看/s.txt的基本信息,查看文本文件的时间并没有发生变化
#   File: ‘/s.txt’
#   Size: 8         	Blocks: 8          IO Block: 4096   regular file
# Device: fd00h/64768d	Inode: 35159       Links: 1
# Access: (0770/-rwxrwx---)  Uid: ( 1002/    nana)   Gid: ( 1002/    nana)
# Access: 2021-03-30 12:19:50.529186480 +0800			查看文本文件的时间
# Modify: 2021-03-30 12:29:21.261199441 +0800			修改文本文件内容的时间
# Change: 2021-03-30 13:36:40.749036316 +0800			修改文本文件属性的时间
#  Birth: -

su切换用户与sudo提权

  • SUDO
    用于普通用户提升权限的
    · 相关的文件 : /etc/sudoers
    · 检查/etc/sudors是否修改正确 : visudo -c
    · sudoers文件格式
root    	ALL=      		(ALL)       		ALL
用户名称		所有机器可登录	所有IP或主机名		所有的指令

· 指令编写格式

vim /etc/suduers		sudo配置文件	
visudo -c				检查sudo配置文件是否修改正确
# /etc/sudoers: parsed OK
必须写全路径:which查看命令全路径

1.只支持vim命令提权
nana	 ALL=(ALL)	 /usr/bin/vim

2.支持所有的命令提权
nana 	ALL=(ALL) 	ALL

3.不支持某个命令提权
nana 	ALL=(ALL)	 ALL,!/usr/bin/vim		# 不支持使用vim命令

4.不支持某个命令的部分功能
nana 	ALL=(ALL)	 ALL,!/usr/bin/vim /root/a.txt		# 不支持使用vim命令对/root/a.txt进行编辑
  • sudo命令使用演示
mkdir /root/A/
vim /etc/sudoers					用户nana对于不支持cd到/root/A/,支持其他所有命令功能
	nana    ALL=(ALL)   ALL,!/usr/bin/cd /root/A/
 visudo -c								验证/etc/sudors是否修改正确
 # /etc/sudoers: parsed OK

以nana的身份登陆服务器
sudo cd /root				使用sudo可以切换到root目录下
# [sudo] password for nana: 
sudo /root/A/				使用sudo命令无法切换到/root/A/目录下
# sudo: /root/A/: command not found
  • SU
su 用户 与 su - 用户的差别
su - 用户		执行登陆shell,身份和环境都切换
su 用户			执行非登陆shell,只切换用户身份

· su - xxx 切换用户的执行系统文件要多于 su xxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值