su命令功能說明:切換用戶身份。
汕尾網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,汕尾網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為汕尾成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的汕尾做網(wǎng)站的公司定做!
語法:su [-flmp][--help][--version][-][-c 指令][-s
][用戶帳號]
補充說明:su可讓用戶暫時變更登入的身份。變更時須輸入所要變更的用戶帳號與密碼。
參數(shù):
-c指令或--command=指令 執(zhí)行完指定的指令后,即恢復(fù)原來的身份。
-f或--fast 適用于csh與tsch,使shell不用去讀取啟動文件。
-.-l或--login 改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,LOGNAME。此外,也會變更PATH變量。
-m,-p或--preserve-environment 變更身份時,不要變更環(huán)境變量。
-s
或--shell=
指定要執(zhí)行的shell。
--help 顯示幫助。
--version 顯示版本信息。
[用戶帳號] 指定要變更的用戶。若不指定此參數(shù),則預(yù)設(shè)變更為root。
示例:
su -c ls root #變更帳號為 root 并在執(zhí)行 ls 指令后退出變回原使用者。
su root -f #變更帳號為 root 并傳入 -f 參數(shù)給新執(zhí)行的 shell。
su - test #變更帳號為 test 并改變工作目錄至 test 的家目錄(home dir)。
使用命令
type
su
來查看命是否屬于系統(tǒng)內(nèi)置命令,
如果執(zhí)行結(jié)果是“su
is
a
shell
builtin”
這表示su
命令是系統(tǒng)內(nèi)置命令
builtin
表示是內(nèi)含的意思
比如
type
mkdir
則執(zhí)行結(jié)果是
mkdir
is
/bin/mkdir
這表示mkdir是一個命令程序
在/bin/mkdir
目錄下
祝你使用愉快??!
如果有什么其他的問題,在下一定盡力而為?。?!
su
su的全稱并不是super user,而是switch user,是不是就突然明白了?是切換用戶的意思。su的一般使用方法是su或者su -,兩種方法雖然只差了1個字符,但也是有比較大的差異的。
加入了-參數(shù),就是login-shell的方式,也就是說切換到另一個用戶之后,當(dāng)前的shell會加載對應(yīng)的環(huán)境變量和各種設(shè)置;
如果沒有加入-參數(shù),就是non-login-shell的方式,也就是說當(dāng)前的shell還是加載切換之前的那個用戶的環(huán)境變量以及各種設(shè)置。
如果不想因為切換到另一個用戶導(dǎo)致自己在當(dāng)前用戶下的設(shè)置不可用,那么就可以用non-login-shell的方式;如果切換用戶后,需要用到該用戶的各種環(huán)境變量,那么使用login-shell方式即可。
sudo
全稱為super user do,即以超級用戶的方式執(zhí)行命令,這里的超級用戶指的就是root用戶,我們在Linux中有時會遇到permission
denied的情況,如以ubuntu用戶的身份查看/etc/shadow的內(nèi)容,因為它是只有root用戶才能查看的,這個時候就可以使用sudo。
兩者的區(qū)別在于:
使用su - 提供root賬號的密碼,可以切換到root用戶;
使用sudo su -,提供當(dāng)前用戶的密碼,也可以切換到root用戶。
如果我們的Linux系統(tǒng)有很多用戶需要使用的話,前者要求所有用戶都知道root用戶的密碼,顯然是非常危險的;后者是不需要暴露root賬戶密碼的,用戶只需要輸入自己的賬戶密碼就可以。
一、 su 、sudo 、限制root遠(yuǎn)程登陸
su- username
帶用戶環(huán)境切換用戶
su- -c"touch /tmp/123.txt"user1
以user1用戶創(chuàng)建/tmp/123.txt 文件
沒有家目錄的用戶可以用模板新建家目錄
mkdir-p /home/user4chownuser4:user4? /home/user4cp /etc/skel/.bash*/home/user4chown-R user4:user4 /home/user4/
普通用戶臨時授權(quán)root用戶權(quán)限去執(zhí)行一條命令
visudo
可以查看sudo配置文件
在命令前加入NOPASSWD: 執(zhí)行sudo時就不需要再輸入用戶的密碼
例子:
User_Alias USER=chen1,chen2
Cmnd_Alias SU=/usr/bin/su
USER ALL=(ALL) NOPASSWD:SU
禁止root用戶遠(yuǎn)程登陸
vi/etc/ssh/sshd_configPermitRootLoginno//修改此處systemctl restart sshd.service
二、df命令、du命令、磁盤分區(qū)
df-h
自動適應(yīng)文件大小的單位,查看磁盤使用情況
free
可以查看swap的使用情況
df-i
查看各個分區(qū)inode的使用情況
有的時候明明磁盤的內(nèi)存還有剩余,但是卻無法寫入新文件,這時候就可能是inode用完了。
du-sh
自動適應(yīng)單位顯示文件或文件夾大小
du不加后綴的時候和du -l 一樣,顯示文件夾下文件的大小
du-lh
自動適應(yīng)單位顯示文件夾下文件的大小
fdisk-l
列出linux 的磁盤信息
fdisk/dev/sdb
m幫助,直接按p是查看分區(qū)情況 n新建分區(qū) p建立主分區(qū) e擴(kuò)展分區(qū) d刪除分區(qū),起始扇區(qū)默認(rèn)2048就可以啦,last 扇區(qū) +2G 就是將分區(qū)一的大小設(shè)置為2G;輸錯命令用ctrl +u清除
BLOCKS是分區(qū)的大小,system是分區(qū)的類型,主分區(qū)和邏輯分區(qū)都是linux,擴(kuò)展分區(qū)是extended
主分區(qū)的分區(qū)號可以為空,而邏輯分區(qū)的分區(qū)號必須連續(xù);邏輯分區(qū)以sdb5開始,分區(qū)之后輸入w可以保存分區(qū),q則不保存操作直接退出
三、磁盤格式化、磁盤掛載、手動增加swap空間
1.磁盤格式化
cat/etc/filesystems? //查看系統(tǒng)支持的文件格式,centos7默認(rèn)xfs,centos6默認(rèn)ext4
mount//查看系統(tǒng)的文件格式
mke2fs
-t指定文件格式 ext4 、ext3
-b指定塊大小,文件都比較大時,塊可以大一點,比如視頻、高清圖片
比較小時可以將塊設(shè)置小一點,加快讀取速度
-m指定給root用戶預(yù)留的空間大小,1就是1%,0.1就是0.1%
-i指定多少字節(jié)占一個inode號
如果不指定-t文件格式,則默認(rèn)為ext2格式
mkfs.ext4/dev/sdb1? //將分區(qū)格式化為ext4格式mkfs.xfs? -f/dev/sdb1? //將分區(qū)格式化為xfs格式\
分區(qū)只有掛載了才可以使用mount查詢到,沒有掛載的分區(qū)可以用
blkid/dev/sdb1
mkfs.ext4 == mke2fs -t ext4
mkfs.ext4與mke2fs支持的選項相同
xfs格式只能用mkfs.xfs 創(chuàng)建
2.磁盤掛載
mount/dev/sdb? /mnt///將 /dev/sdb掛載到mnt下 mount UUID="2d8e7749-f2f7-4de5-b1b9-b6bf758d2f37"/mnt///這里的uuid是用blkid /dev/sdb 查到的
卸載磁盤
umount/dev/sdb
如果當(dāng)前目錄在/dev/sdb下則需要退出當(dāng)前分區(qū)
也可以直接用
umount-l/dev/sdb? umount-l/mnt/
mount
man mount 可以查看mount的具體用法
/defaults 可以查找默認(rèn)用法
找到下面這一行
Use default options: rw, suid, dev, exec, auto, nouser, and async.
rw讀寫權(quán)限
suid可以設(shè)置suid權(quán)限
dev,系統(tǒng)默認(rèn)不用管
exec可執(zhí)行
auto自動掛載
nouser是否允許普通用戶掛載,默認(rèn)不允許
async 不實時同步內(nèi)存的東西到磁盤(減輕磁盤壓力)
mount -o remount,rw/dev/sdb? //重新掛載
vi/etc/fstab? //系統(tǒng)開機都掛載哪些文件
四、手動增加虛擬內(nèi)存
ddif=/dev/zeroof=/tmp/newdisk? bs=1M count=100//創(chuàng)建虛擬磁盤
if指定源,一般寫/dev/zero,它是unix系統(tǒng)特有的一個文件,可以源源不斷的提供'0',of指定目標(biāo)文件,bs指定塊大小,count指定塊的數(shù)量
mkswap -f /tmp/newdisk//格式化為swapswapon? /tmp/newdisk//將新建的swap加載free-m//顯示內(nèi)存使用大小,-m指定單位為mswapoff? /tmp/newdisk//將虛擬內(nèi)存卸載
五、lvm
lvm創(chuàng)建過程
創(chuàng)建物理卷創(chuàng)建卷組創(chuàng)建邏輯分區(qū)格式化為需要的格式掛載分區(qū)
具體介紹日志
fdisk /dev/sdb
t 選擇分區(qū),8e //將分區(qū)轉(zhuǎn)換為lvm格式 ,w退出
創(chuàng)建物理卷
1.
yumprovides"/*/pvcreate"
通配查詢pvcreate命令的軟件包名
yum install -y lvm2//安裝lvm
partprobe //生成分區(qū)文件
2.
pvcreate/dev/sdb1pvcreate? /dev/sdb2pvcreate? /dev/sdb3
pvdisplay查看已經(jīng)創(chuàng)建的物理卷
創(chuàng)建卷組
1.pvs
可以直觀的查看物理卷有哪些
2.創(chuàng)建卷組,將sdb1和sdb2設(shè)置為一個卷組
vgcreatevg1 /dev/sdb1 /dev/sdb2
vgdisplay可以查看卷組信息
創(chuàng)建邏輯分區(qū)
lvcreate-L100M-n lv1 vg1
從vg1卷組中創(chuàng)建名字為lv1大小100M的邏輯分區(qū)
-L指定分區(qū)大小
-n指定分區(qū)名字
將分區(qū)格式化為ext4格式
mkfs.ext4 /dev/vg1/lv1
然后將文件掛載
mount/dev/vg1/lv1 /mnt
ext4擴(kuò)容邏輯分區(qū)
umount/mnt///卸載分區(qū)lvresize -L200M/dev/vg1/lv1? //擴(kuò)展分區(qū)e2fsck -f/dev/vg1/lv1? //檢查磁盤是否有錯誤resize2fs/dev/vg1/lv1? //更新邏輯分區(qū)大小,不然重新掛載會無法識別擴(kuò)容的大小
ext4縮容
umount/mnt///卸載分區(qū)e2fsck -f/dev/vg1/lv1? ? //檢查磁盤是否有錯誤resize2fs/dev/vg1/lv1 100M? //將分區(qū)縮小為100Mlvresize -L100M/dev/vg1/lv1? ? //重新設(shè)置卷大小
xfs擴(kuò)容
1.擴(kuò)容與縮容不會更改分區(qū)中的文件,xfs只可以擴(kuò)容不可以縮容;
2.如果磁盤已經(jīng)掛載要先umount 卸載
然后格式化為xfs.
mkfs.xfs-f/dev/vg1/lv1
XFS的擴(kuò)容不需要先卸載,直接擴(kuò)容即可
lvresize -L200M /dev/vg1/lv1? xfs_growfs/dev/vg1/lv1? //更新分區(qū)大小
關(guān)于擴(kuò)容縮容的總結(jié)
ext4可以擴(kuò)容和縮容而且需要卸載后操作,xfs只可以擴(kuò)容,不需要卸載
ext4擴(kuò)容
lvresize -L 100M /dev/vg1/lv1e2fsck-f/dev/vg1/lv1resize2fs /dev/vg1/lv1
縮容
e2fsck-f/dev/vg1/lv1resize2fs /dev/vg1/lv1 100Mlvresize -L 100M /dev/vg1/lv1
xfs擴(kuò)容
lvresize-L100M/dev/vg1/lv1xfs_growfs /dev/vg1/lv1
在分區(qū)空間用完之后就需要擴(kuò)容卷組,然后再擴(kuò)容
卷組擴(kuò)容
vgextendvg1 /dev/sdb3
將 /dev/sdb3加入到vg1卷組
1、切換root身份不同
su命令:su只是切換了root身份,但shell環(huán)境仍然是普通用戶的shell;而su-連用戶和shell環(huán)境一切切換成root身份了。只有切換了shell環(huán)境才不會出現(xiàn)PATH環(huán)境變量錯誤,報command not found的錯誤。
su-命令:su切換成root用戶以后,pwd一下,發(fā)現(xiàn)工作目錄仍然是普通用戶的工作目錄;而用su-命令切換以后,工作目錄變成root的工作目錄了。
2、采用su deploy命令后,取目標(biāo)用戶不同
su命令:su不會讀取目標(biāo)用戶的環(huán)境配置文件。
su-命令:su-讀取目標(biāo)用戶的環(huán)境配置文件。
3、service命令
su命令:使用su root切換到root用戶后,不可以使用service命令;
su-命令:使用su-后,就可以使用service命令了。
4、用echo $PATH命令后,環(huán)境量不同
su命令:環(huán)境量變?yōu)閡sr。
su-命令:環(huán)境量變?yōu)閛racle。