特殊權限
passwd:s
SUID: 運行某程序時,相應進程的屬主是程序文件自身的屬主,而不是啓動者;
chmod u+s FILE
chmod u-s FILE
如果FILE本身原來就有執行權限,則SUID顯示爲s;否則顯示S;
SGID: 運行某程序時,相應進程的屬組是程序文件自身的屬組,而不是啓動者所屬的基本組;
chmod g+s FILE
chmod g-s FILE
develop team, hadoop, hbase, hive
/tmp/project/
develop
Sticky: 在一個公共目錄,每個都可以創建文件,刪除自己的文件,但不能刪除別人的文件;
chmod o+t DIR
chmod o-t DIR
000:
001:
...
110:
111:
chmod 5755 /backup/test
umask 0022
umask
find:
find DIRICTORY Cretiria ACTION
匹配條件:
-type
f, d, c, b, l, s, p
-atime [+|-]
-amin
-size [+|-] 11M
10M<
-user
-uid
-nouser
-nogroup
-name
-iname
-regex
組合條件:
-a
-o
-not
\( \)
ACTION
-ls
-ok
-exec
文件特殊權限
SUID: s
SGID: s
Sticky: t
chmod u+s
g+s
o+t
練習:寫一個腳本
寫一個腳本,顯示當前系統上shell爲-s指定類型的用戶,並統計其用戶總數。-s選項後面跟的參數必須是/etc/shells文件中存在的shell類型,否則不執行此腳本。另外,此腳本還可以接受--help選項,以顯示幫助信息。腳本執行形如:
./showshells.sh -s bash
顯示結果形如:
BASH,3users,they are:
root,redhat,gentoo
#!/bin/bash
#
if [ $1 == '-s' ]; then
! grep "${2}$" /etc/shells &> /dev/null && echo "Invalid shell." && exit 7
elif [ $1 == '--help' ];then
echo "Usage: showshells.sh -s SHELL | --help"
exit 0
else
echo "Unknown Options."
exit 8
fi
NUMOFUSER=`grep "${2}$" /etc/passwd | wc -l`
SHELLUSERS=`grep "${2}$" /etc/passwd | cut -d: -f1`
SHELLUSERS=`echo $SHELLUSERS | sed 's@[[:space:]]@,@g'`
echo -e "$2, $NUMOFUSER users, they are: \n$SHELLUSERS"
${變量名}