如何讓普通使用者獲取root使用者的許可權
sudo 是 系統管理指令,是允許系統管理員讓普通使用者執行一些或者全部的 root 的一個工具,如 halt,reboot,su 等等。這樣不僅減少了 root 使用者的登入 和管理時間,同樣也提高了安全性。sudo不是對 的一個代替,它是面向每個 的。 |
sudo 的特點
限制使用者執行指定的命令 記錄使用者執行的每一條命令 配置檔案(/etc/sudoers)提供集中的使用者管理、許可權與主機等引數 驗證密碼的後5分鐘內(預設值)無須再讓使用者再次驗證密碼
實戰演練
環境:Red Hat Enterprise Linux Server release 7.3
1. 測試普通使用者能否刪除 root 使用者建立的檔案
[root@localhost ~]# mkdir /test [root@localhost ~]# cd /test [root@localhost test]# touch test.txt [root@localhost test]# mkdir test.dir [root@localhost test]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 02:19 test.dir -rw-r--r--. 1 root root 0 Jul 18 02:19 test.txt [root@localhost test]# id test uid=1004(test) gid=1005(test) groups=1005(test) [root@localhost test]# su - test Last login: Thu Jul 18 02:17:11 EDT 2019 on pts/0 [test@localhost ~]$ cd /test [test@localhost test]$ ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 02:19 test.dir -rw-r--r--. 1 root root 0 Jul 18 02:19 test.txt [test@localhost test]$ rm -rf test.dir/ rm: cannot remove ‘test.dir/’: Permission denied [test@localhost test]$ rm -rf test.txt rm: cannot remove ‘test.txt’: Permission denied [test@localhost test]$ ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 02:19 test.dir -rw-r--r--. 1 root root 0 Jul 18 02:19 test.txt
2. 用 visudo 命令配置 sudo
[root@localhost ~]# visudo # 在 /etc/sudoers 配置檔案中 root ALL=(ALL) ALL 這一行下面加入 test ALL=(ALL) ALL [root@localhost ~]# cat /etc/sudoers | grep ALL Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" root ALL=(ALL) ALL test ALL=(ALL) ALL # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS %wheel ALL=(ALL) ALL # %wheel ALL=(ALL) NOPASSWD: ALL %wheel ALL=(ALL) NOPASSWD: ALL # %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
3. 普通使用者結合 sudo 刪除 root 使用者的檔案
[root@localhost ~]# echo "Jaking" | passwd --stdin test Changing password for user test. passwd: all authentication tokens updated successfully. [root@localhost ~]# su - test Last login: Thu Jul 18 02:34:50 EDT 2019 on pts/0 [test@localhost ~]$ cd /test/ [test@localhost test]$ ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 02:19 test.dir -rw-r--r--. 1 root root 0 Jul 18 02:19 test.txt [test@localhost test]$ rm -rf test.dir/ rm: cannot remove ‘test.dir/’: Permission denied [test@localhost test]$ rm -rf test.txt rm: cannot remove ‘test.txt’: Permission denied [test@localhost test]$ sudo rm -rf test.dir/ [sudo] password for test: [test@localhost test]$ ll total 0 -rw-r--r--. 1 root root 0 Jul 18 02:19 test.txt [test@localhost test]$ sudo rm -rf test.txt [test@localhost test]$ ll total 0
4. sudo 免密配置
[test@localhost test]$ sudo cat /etc/shadow [sudo] password for test: root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7::: bin:*:16925:0:99999:7::: daemon:*:16925:0:99999:7::: adm:*:16925:0:99999:7::: ***省略部分輸出資訊*** [test@localhost test]$ id test2 uid=1006(test2) gid=1007(test2) groups=1007(test2) [root@localhost ~]# visudo # 在 /etc/sudoers 配置檔案中 %wheel ALL=(ALL) NOPASSWD: ALL 這一行的下面 加入test ALL=(ALL) NOPASSWD: ALL [root@localhost ~]# cat /etc/sudoers | grep NOPASSWD # %wheel ALL=(ALL) NOPASSWD: ALL %wheel ALL=(ALL) NOPASSWD: ALL test ALL=(ALL) NOPASSWD: ALL [test@localhost ~]$ sudo cat /etc/shadow # 用普通使用者檢視 /etc/shadow 檔案已經不需要再輸入當前登入使用者的密碼 root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7::: bin:*:16925:0:99999:7::: daemon:*:16925:0:99999:7::: adm:*:16925:0:99999:7::: ***省略部分輸出資訊***
5. 配置 sudo 的部分許可權
[root@localhost ~]# cd /tmp [root@localhost tmp]# rm -rf * [root@localhost tmp]# ll total 0 [root@localhost tmp]# touch file [root@localhost tmp]# mkdir dir [root@localhost tmp]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 03:01 dir -rw-r--r--. 1 root root 0 Jul 18 03:01 file [root@localhost tmp]# whereis cat cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz [root@localhost tmp]# visudo # 把 /etc/sudoers 配置檔案中的 test ALL=(ALL) ALL 改為 test ALL=(ALL) /usr/bin/cat [root@localhost ~]# cat /etc/sudoers | grep cat ## Updating the locate database # Defaults specification # Preserving HOME has security implications since many programs test ALL=(ALL) /usr/bin/cat [root@localhost ~]# su - test Last login: Thu Jul 18 03:06:55 EDT 2019 on pts/0 [test@localhost ~]$ sudo cat /etc/shadow # 給 test 使用者配置了檢視許可權 root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7::: bin:*:16925:0:99999:7::: daemon:*:16925:0:99999:7::: adm:*:16925:0:99999:7::: ***省略部分輸出資訊*** [test@localhost ~]$ cd /tmp [test@localhost tmp]$ ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 03:06 dir -rw-r--r--. 1 root root 0 Jul 18 03:01 file [test@localhost tmp]$ rm -rf dir # test 使用者已經沒有了刪除許可權 rm: cannot remove ‘dir’: Permission denied [test@localhost tmp]$ rm -rf file # test 使用者已經沒有了刪除許可權 rm: cannot remove ‘file’: Permission denied [test@localhost tmp]$ ll total 0 drwxr-xr-x. 2 root root 6 Jul 18 03:06 dir -rw-r--r--. 1 root root 0 Jul 18 03:01 file
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2652522/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讓root使用者有super許可權
- Android手機獲取Root許可權Android
- 普通使用者許可權執行dockerDocker
- win10管理員許可權如何獲取 win10怎樣讓當前使用者獲得管理員許可權Win10
- CentOS 新建使用者並授予root許可權CentOS
- Ubuntu-給新增使用者新增root許可權Ubuntu
- 給非 root 使用者新增 docker 使用許可權Docker
- win10怎麼獲取管理員許可權_win10讓當前使用者獲得管理員許可權的步驟Win10
- ubuntu 開放root使用者的SSH訪問許可權Ubuntu訪問許可權
- jenkins--為普通使用者授予指定job許可權Jenkins
- 【USER】Oracle 一個普通使用者有多少許可權Oracle
- 詳解管理root使用者許可權的sudo服務程式
- 通過可寫檔案獲取 Linux root 許可權的 5 種方法Linux
- 如何檢視postgresql使用者許可權SQL
- linux使用者許可權Linux
- win10如何獲得trustedinstaller許可權_win10獲取trustedinstaller許可權方法Win10Rust
- 使用者和組的許可權
- 前端如何進行使用者許可權管理前端
- 取消 root 級管理員的 root 許可權
- Linux使用者與許可權Linux
- mysql使用者許可權管理MySql
- Android Q 讓使用者優雅地管理位置許可權Android
- NAS使用者許可權的設定
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- Linux下建立root/普通使用者Linux
- Win10系統如何獲取WindowsApps許可權Win10WindowsAPP
- 如何獲取最高管理員許可權 win10教育版最高管理員許可權Win10
- linux5-使用者許可權Linux
- MySql查詢使用者許可權MySql
- MongoDB 使用者與許可權管理MongoDB
- MySQL 使用者及許可權管理?MySql
- 淺談PostgreSQL使用者許可權SQL
- Linux使用者、組、許可權管理Linux
- MySQL使用者及許可權管理MySql
- Oracle使用者角色許可權管理Oracle
- win10管理員許可權怎麼獲取 win10管理員許可權獲取的方法Win10
- linux 禁止普通使用者su到root使用者Linux
- mysql 給了使用者所有許可權ALL PRIVILEGES,但是該使用者沒有grant許可權MySql