歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Solaris中的Shell和用戶權限

  Solaris可以支持三種正常的shell,Bourne Shell ( /bin/sh或/sbin/sh )、C Shell ( /bin/csh )和Korn Shell ( /bin/ksh )。使用這些作為登錄shell時,用戶的權限僅由文件的讀、寫、執行權限和ACL控制。這種控制方式比較簡單,文件明確規定了主人、同組人和他們的權限,而所有其他人都用第三組權限。這很難劃分比較細致的權限級別,在很多情況下這不能滿足管理員的要求。     管理員可能希望設置某些特殊用戶,某用戶只管關機;某用戶只能通過POP3使用郵件服務,該用戶登錄的唯一目的是改自己的口令;某個用戶只能在家目錄下創建文件(比如通過FTP下載文件),不能修改已有文件,不能浏覽文件系統、不能刪除文件……     所有這些都可以在登錄shell上做文章。          例一, 一個關機用戶     要關機,必須有關機權限。什麼人有關機權限?root。但不能把root口令告訴普通用戶,怎麼辦?創建一個特殊的超級用戶,他的登錄shell是一個定制的文件:一條關機命令。具體做法如下:     # vi /etc/passwd     shutdown:x:0:1:shutdown user:/:/bin/shutdown 添加一個用戶     # vi /etc/shadow     shutdown::::::::     # vi /bin/shutdown     /usr/sbin/shutdown -y -g0 -i5     把別的用戶logout,試著用shutdown用戶登錄。輸入完用戶名和口令後,系統就開始關機。          例二, 一個郵件用戶,該用戶登錄時只能改口令     比如此用戶為user1,添加完該用戶後,修改他的登錄shell,方法如下:     # vi /etc/passwd     user1:x:……..:/bin/passwd     試著從另外一台機器telnet過來,有什麼現象?用戶一登錄上來,系統就讓用戶改口令。改完後,網絡連接自動斷掉。          例三, 一個用戶只能在家目錄下創建文件(比如通過ftp下載文件),不能修改已有文件,不能浏覽文件系統、不能刪除文件……     這種用戶的實現可以借助於一種/usr/lib/rsh稱為restricted shell的文件。這種shell其實是Bourne shell的一種變形。除了以下特點以外,它和Bourne shell完全相同:     使用此種shell的用戶不能:     改變自己的工作路徑,因此只能呆在家目錄下;     不能修改PATH變量,所以一旦PATH被管理員設定後,用戶只能執行指定目錄下的命令;     指明路徑和命令時不能用“/”;     不能重定向輸出。          這樣,為了實現上面規定的功能,可以按下面的做法:     1. 首先按一般方法( admintool )創建此用戶,但登錄shell寫/usr/lib/rsh     2. 修改其家目錄下的.profile文件,最重要的是其中的PATH變量,例如:     PATH= . ; eXPort PATH     3. # cp –p /usr/bin/ftp .     # cp –p /usr/bin/telnet .     # cp –p /usr/bin/ls .     # cp –p /usr/bin/pwd .     # cp –p /usr/bin/more .     # cp –p /usr/bin/file .               拷貝一系列該用戶需要使用的命令到其家目錄下。但是切記不要包括rm 、vi等有可能使用戶自己修改.profile的命令。




Copyright © Linux教程網 All Rights Reserved