【CentOS 7筆記17】,su和sudo#171031

hellopasswdbash


一. su

[root@localhost ~]# su - user1
[user1@localhost ~]# pwd
    /home/user1

[root@localhost ~]# su user1
[root@localhost ~]# pwd
    /root

[root@localhost ~]# ls -la	#查看當前用戶的配置文件

[root@localhost ~]# su - -c "touch /tmp/1.txt" user1
[root@localhost ~]# ls -lt /tmp/ | head	
[root@localhost ~]# id user1	#查看特定用戶的的uid和所屬組

若不當心誤刪了普通用戶的配置文件,能夠經過新建文件再從通用配置文件中拷貝一份,而且給配置文件賦權ssh

[root@localhost ~]# rm -rf /home/user1
[root@localhost ~]# su - user1
-bash-4.2$	#沒有任何的配置文件
    Ctrl+d
[root@localhost ~]# mkdir /home/user1
[root@localhost ~]# chown user5:user5 /home/user1/

[root@localhost ~]# ls /etc/skel/	#系統模板文件
[root@localhost ~]# cp/etc/skel/.bash* /home/user1
[root@localhost ~]# chown -R user1:user1 !$    #將配置文件的全部者和全部組賦權

[root@localhost ~]# su - user1
[user1@localhost ~]# pwd
    /home/user1

二. sudo

[root@localhost ~]# visudo

    root	ALL=(ALL)	ALL	#運行root用戶運行任何目錄
    ser1	ALL=(ALL)	ALL或/usr/bin/ls,/usr/bin/mv,/usr/bin/cat	#ser1
    用戶	主機=(用戶)	全部命令,單個命令

    :set nu	#編號

使用visudo能夠檢測出語法是否輸入錯誤,若在第100行處輸入錯誤,則會提示ui

visudo: >>> /etc/sudoers: syntax error near line 100 <<<    #提示在第100行處有誤
What now? 
Options are:
  (e)dit sudoers file again    #按e從新編輯
  e(x)it without saving changes to sudoers file    #按x退出,不保存修改
  (Q)uit and save changes to sudoers file (DANGER!)    #按q保存並退出!
What now?
[root@localhost ~]# ls /root/	#權限不夠
[root@localhost ~]# sudo /usr/bin/ls /root/	#能夠訪問
    而且第一次執行時須要輸入密碼

    ser2	ALL=(ALL)	NOPASSWD:/usr/bin/ls,/usr/bin/cat	#添加了NOPASSWD:能夠不用輸入密碼就能夠直接操做
[root@localhost ~]# su - user2
[root@localhost ~]# ls /root/
[root@localhost ~]# sudo ls /root/

    建立一個用戶,而且賦予它與root用戶同樣的權限

    Host_Alias
    Cmnd_Alias


    Host_Alias ???
    Cmnd_Alias USER1_CMD=/usr/bin/ls,/usr/bin/cat
    ser2	ALL=(ALL)	USER1_CMD
[root@localhost ~]# sudo ls /root/
[root@localhost ~]# sudo cat /home/1.txt


    %wheel	ALL=(ALL)	NOPASSWD:ALL	#用戶組

二. sudo

使用某個用戶登陸後能夠直接切換到root用戶,而並不須要輸入密碼.net

[root@localhost ~]# visudo
	#User_Aliases
	User_Alias USERS = user1,user2

	USERS	ALL=(ALL)	NOPASSWD:/usr/bin/su

[root@localhost ~]# su - user1
[user1@localhost ~]# su - user2
[user1@localhost ~]# sudo su - user2
[user2@localhost ~]# su -
	Ctrl+C
[user2@localhost ~]# sudo su -
[root@localhost ~]# whoami
	/root

限制某些用戶不能使用/usr/bin/su -和/usr/bin/su - root切換到root用戶下的方法rest

USERS	ALL=(ALL)	NOPASSWD: !/usr/bin/su -,!/usr/bin/su - root

三. 限制遠程直接登陸root

防止知道root密碼後,惡意使用遠程登陸主機code

[root@localhost ~]# vi /etc/ssh/sshd_sysconfig
	/Root
	# PermitRootLogin yes    #容許遠程登陸root
	改
	PermitRootLogin no    #不可遠程登陸root
[root@localhost ~]# systemctl restart sshd.service    #重啓sshd服務

【CentOS 7基礎筆記15】,用戶與用戶組
【CentOS 7基礎筆記16】,usermod和mkpasswd
【CentOS 7基礎筆記17】,su和sudo
【CentOS 7基礎筆記18】,df命令和du命令
【CentOS 7基礎筆記19】,磁盤分區blog

修改於171031get

相關文章
相關標籤/搜索