標籤:reference linux 管理員 file 定向
許可權管理:
r:
w:
x:
三類使用者:
u: 屬主
g: 屬組
o: 其他使用者
chown: 改變檔案屬主(只有管理員可以使用此命令)
# chown USERNAME file,... 把file的屬主改成這個使用者
-R 修改目錄及其內部檔案或子目錄的屬主
--reference=/path/to/somefile file,... 將file的屬主&屬組一同設定成與path的屬主&屬組一致
chown USERNAME:GRPNAME file,... 同時改變owner, group
eg: chown root:root /tmp/abc
chown :GRPNAME file,... 只改變group
eg: chown :mygroup /tmp/abc
# chgrp: 改變檔案屬組(只有管理員可以使用此命令)
-R
--reference=/path/to/somefile file,...
#chmod: 修改檔案的許可權
修改三類使用者的許可權:
chmod MODE file, ...
-R
--reference=/path/somefile file,...
修改某類使用者或某些類使用者權限:
u,g,o,a
chmod 使用者類別=MODE file,...
eg: chmod u=rwx /tmp/abc
eg: chmod go=r /tmp/abc
eg: chmod g=rx,o= /tmp/abc 不給許可權,就是沒有許可權 o許可權為---
修改某類使用者的某位或某些位許可權:
u,g,o,a
chmod 使用者類別+|-MODE file,...
chmod u+x,g-x /tmp/abc 賦予owner的x許可權,拿掉屬組的x許可權
chmod a+x /temp/abc 同時賦予三類使用者的x許可權
練習:
1. 建立一個沒有家目錄的使用者openstack
useradd -M openvpn
2. 複製/etc/skel為/home/openstack
cp -r /etc/skel /home/openstack
3. 改變/home/openstack及其內部檔案得屬主屬組君威openstack
chown -R openstack:openstack /home/openstack
4. /home/openstack及其內部的檔案,屬組合其他使用者沒有任何存取權限
chmod -R go= /home/openstack
手動添加使用者hive,基本組為hive(5000), 附加組為mygroup
手動產生密碼:
1. openssl passwd -1 -salt ‘12345678‘
umask: 遮罩碼,
#umask 022
檔案預設不能具有執行許可權,如果算得的結果中有執行許可權,則將將其許可權加1
使用者建立檔案
檔案:666-umask
目錄:777-umask
站在使用者逇較多來說,SHELL的類型
登陸式shell:
正常通過某終端登陸
su - USERNAME
su -l USERNAME
非登入式shell:
su USERNAME
圖形終端下開啟的命令視窗
自動執行的shell指令碼
bash的設定檔:
全域配置
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
個人配置
~/.bash_profile
~/.bashrc
profile類的檔案:
1. 設定環境變數
2. 運行命令或指令碼
bashrc類的檔案:
1. 設定本地變數
2. 定義命令別名
登陸式shell如何讀取設定檔?
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登陸式shell如何讀取設定檔?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
bash: 指令碼解譯器
程式: 指令和資料
控制器: 指令
運算器:
儲存空間:
地址匯流排: 記憶體定址
資料匯流排: 傳輸資料
控制匯流排: 控制指令
寄存器: cpu暫時儲存空間
I/O: 硬碟
程式:
INPUT裝置:
OUTPUT裝置
系統設定
預設輸入裝置: 標準輸出: STDOUT, 1
預設輸出裝置: 標準輸入: STDIN, 0
標準錯誤輸出: STDERR, 2
eg: passwd --stdin
標準輸入: 鍵盤
標準輸出和錯誤輸出: 顯示器
I/O 重新導向:
Linux:
> 覆蓋輸出
>> 追加輸出
set -C 禁止對已經存在檔案使用覆蓋重新導向
強制覆蓋輸出,則使用 >|
set +C 關閉上述功能
2>: 重新導向錯誤輸出
2>>: 追加方式重新導向錯誤輸出
&>: 重新導向標準輸出或錯誤輸出至同一個檔案
< 輸入重新導向
<<: Here Document 此處產生文檔
eg:
cat << END
....
....
....
END
cat >> /tmp/myfile.txt<<EOF 追加檔案到myfile.txt,遇到EOF停止
管道: 前一個命令的輸出,做為後一個命令的輸入
命令1 | 命令2 | 命令3
eg:
echo "hello,world" .| tr ‘a-z‘ ‘A-Z‘
echo "redhat" | passwd --stdin hive
練習:
1. 統計/usr/bin 目錄下的檔案個數:
ls /usr/bin | wc -l
2. 取出當前系統上所有使用者的shell, 要求, 每種shell只顯示一次, 並且按順序進行顯示
cat /etc/passwd | cut -d ":" -f7 | sort -u
cut -d " " -f7 /etc/passwd | sort -u
3. 思考: 如何顯示/var/log 目錄下每個檔案的內容類型?
file /var/log/*
or
cd /var/log
file /var/log/`ls /var/log`
4. 取出/etc/inittab檔案得第6行
cat /etc/inittab | head -6 | tail -1
5. 取出/etc/passwd 檔案中倒數第9個使用者的使用者名稱和shell,顯示到螢幕上並將其儲存至/tmp/users檔案中
cat /etc/passwd|head -9| tail -1 | cut -d ":" -f1,7 >> /tmp/users
6. 顯示/etc/目錄下所有以pa開頭的檔案, 並統計其個數
ls -d /etc/pa* | wc -l
7. 不使用文字編輯器,將alias cls=clear 一行內容添加至目前使用者的.bashrc檔案中
[[email protected] ~]$ cat >>~/.bashrc<<EOF
> alias cls=‘clear‘
> EOF
or
echo "alias cls=clear" >> ~/.bashrc
本文出自 “Richier” 部落格,請務必保留此出處http://richier.blog.51cto.com/1447532/1630157
Linux許可權及IO重新導向筆記