Linux權限

ps: 紅字字體爲重要部分, 仔細看node

1、 文件、目錄隱藏屬性linux

        1. chattr: 改變文件或目錄隱藏屬性;shell

        2. lsattr:  查看文件或目錄隱藏屬性;vim

            經常使用選項:bash

                              ①。 -i:     不能刪除、更名、移動、重定向、追加;ide

                                                 對文件操做;工具

[root@Centos2 ~]# echo aa > a.txt
[root@Centos2 ~]# chattr +i a.txt
[root@Centos2 ~]# rm -rf a.txt 
rm: cannot remove `a.txt': Operation not permitted          #提示沒權限
[root@Centos2 ~]# mv a.txt b.txt
mv: cannot move `a.txt' to `b.txt': Operation not permitted
[root@Centos2 ~]# mv a.txt /tmp
mv: cannot move `a.txt' to `/tmp/a.txt': Operation not permitted
 [root@Centos2 ~]# echo "11" > a.txt 
-bash: a.txt: Permission denied
[root@Centos2 ~]# echo "11" >> a.txt
-bash: a.txt: Permission denied
[root@Centos2 ~]# lsattr a.txt
----i--------e- a.txt

                                                 對目錄操做;字體

[root@Centos2 /]# chattr +i /root/
[root@Centos2 /]# lsattr  | grep root
……………………/省略
----i--------e- ./root
[root@Centos2 /]# mkdir /root/a
mkdir: cannot create directory `/root/a': Permission denied
[root@Centos2 /]# echo "aaa" > /root/1.txt
-bash: /root/1.txt: Permission denied
[root@Centos2 /]# tocuh /root/aaa.txt
-bash: tocuh: command not found

                              ②。 -a:     只能追加;ui

[root@Centos2 ~]# chattr +a a.txt 
[root@Centos2 ~]# echo "aaaaaa" > a.txt
-bash: a.txt: Operation not permitted
[root@Centos2 ~]# mv a.txt b.txt
mv: cannot move `a.txt' to `b.txt': Operation not permitted
[root@Centos2 ~]# rm -rf a.txt
rm: cannot remove `a.txt': Operation not permitted
[root@Centos2 ~]# echo "11111" >> a.txt 
ps:      目錄顯示方法和-i同樣。

                              ③。 -R:     遞歸顯示隱藏權限;spa

[root@Centos2 ~]# lsattr -R /root/
………………/省略
-----a-------e- /root/a.txt

                              ④。 -d:     顯示目錄自己隱藏權限;

[root@Centos2 ~]# chattr +a 2/
[root@Centos2 ~]# lsattr -d 2/
-----a-------e- 2/

2、 如何判斷內置命令和外置命令

        1. 內置命令:      存放在內核

[root@Centos2 ~]# type cd
cd is a shell builtin
[root@Centos2 ~]# type pwd
pwd is a shell builtin
[root@Centos2 ~]# type type
type is a shell builtin

        2. 外置命令:      

[root@Centos2 ~]# type shutdown
shutdown is /sbin/shutdown
[root@Centos2 ~]# type cat
cat is hashed (/bin/cat)
[root@Centos2 ~]# type vim
vim is /usr/bin/vim
[root@Centos2 ~]# type find
find is /bin/find

3、 搜索文件

        1. which:     經過PATH環境變量到該路徑內查找可執行文件, 因此基本的功能是尋找可執行文件

[root@Centos2 ~]# which ps
/bin/ps
[root@Centos2 ~]# which pwd
/bin/pwd
[root@Centos2 ~]# which cd
/usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

        2. whereis:     和find相比, whereis查找的速度很是快, 這是由於linux系統會將系統內的全部文件都記錄在一個數據文件中

[root@Centos2 ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
[root@Centos2 ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

        3. find:     查找文件

find做用: Find是一個很是有效的工具, 它能夠遍歷當前目錄甚至於整個文件系統來查找某些文件或目錄

find參數:

               -name : 按照文件名查找文件

               -perm : 按照文件權限來查找文件

               -user   : 按照文件屬主來查找文件

               -group: 按照文件屬組來查找文件

               -mmin : 查看幾分鐘內修改的文件

               -atime  -n  +n: 訪問或執行時間小於/大於n天的文件

               -ctime  -n  +n: 寫入、更改inode屬性(例如更改全部者、權限或者連接)時間小於/大於n天內的文件

               -mtime -n +n: 寫入時間小於/大於n天的文件. -n表示文件距如今n天之內,+n表示文件距如今n天之前.

               -nogroup: 查找無有效屬組的文件. 即該文件屬組在/etc/group中不存在.

               -nouser: 查找無有效屬主的文件. 即該文件屬主在/etc/passwd中不存在.

               -type: b:塊設備文件

                            d:目錄
                            c:字符設備文件
                            p:管道文件
                            l:符號連接文件
                            f:普通文件

               -size n[c]: 查找文件長度爲n塊的文件, 帶有c時表示文件長度以字節計.

               -mount: 在查找文件時不跨越文件系統mount點

1. 在家目錄下搜索以".txt"結尾的文件

[root@test01 ~]# find ~ -name "*.txt"
/root/bomc.txt
/root/1.txt

2. 在當前目錄中搜索以大寫字母開頭的文件或目錄

[root@test01 ~]# find . -name "[A-Z]*"

./.config/Trolltech.conf
./Videos
./Desktop
………………

3. 在當前目錄查找權限爲755的文件或目錄

[root@test01 ~]# find . -perm 755
./.config
./Videos
./Desktop
………………

4. 在當前目錄查找屬組爲root的文件

[root@test01 ~]# find . -group root
./.tcshrc
./install.log
………………

5. 在當前目錄查找更改時間在3日之前的文件

[root@test01 ~]# find . -mtime +3
./.tcshrc./install.log
………………

6. 在/etc目錄下查找全部的目錄

[root@test01 ~]# find /etc/ -type d|more
/etc/
/etc/chkconfig.d
/etc/init
………………

7. 在當前目錄下查找排除目錄之外的文件

[root@test01 ~]# find . ! -type d./.tcshrc./install.log
………………

8. 在當前目錄下查找排除符號鏈接的文件

[root@test01 ~]# find . -type l./.kde/cache-test01
………………

9. 查找當前目錄下查找文件長度大於10字節的文件

[root@test01 ~]# find . -size +10c
./.tcshrc
./install.log
./.esd_auth

………………

10. 查看當前目錄下的全部普通文件, 並用ls -l將它們列出

[root@test01 ~]# find . -type f | xargs ls -l      或者以下命令
[root@test01 ~]# find . -type f -exec ls -l {} \;

11. 查看/var/log目錄下5天之前的日誌文件, 並用rm將它們刪除

[root@test01 ~]# find /var/log/ -type f -mtime +5 | xargs rm -rf
[root@test01 ~]# find /var/log/ -type f -mtime +5 -exec rm -rf {} \;

11. 查找1天之內建立的文件

[root@test01 ~]# find / -type f -mtime -1

4、 用stat命令查看目錄、文件時間

      1. a、m、ctime解釋

      atime:     最近查看文件的時間;

      mtime:     最近修改文件內容的時間;

      ctime:      最近文件屬性的更改時間和文件大小變化時間;

[root@Centos2 /]# stat linux/
  File: `linux/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1045419     Links: 2
Access: (4775/drwsrwxr-x)  Uid: (    0/    root)   Gid: (  501/   user2)
Access: 2015-03-17 23:02:55.525610032 -0400
Modify: 2015-03-17 23:02:54.225616979 -0400
Change: 2015-03-17 23:02:54.225616979 -0400
     
[root@Centos2 /]# echo "aaa" > linux/aaa.txt
[root@Centos2 /]# stat linux
  File: `linux'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1045419     Links: 2
Access: (4775/drwsrwxr-x)  Uid: (    0/    root)   Gid: (  501/   user2)
Access: 2015-03-17 23:02:55.525610032 -0400
Modify: 2015-03-17 23:06:26.894616709 -0400
Change: 2015-03-17 23:06:26.894616709 -0400
ps: 當咱們往linux目錄寫入文件時, 它的mtime和ctime都發生時間的變化


5、 文件特殊權限

[root@Centos2 ~]# mkdir linux
[root@Centos2 ~]# ls -ld linux/
drwxr-xr-x 2 root root 4096 Mar 17 22:47 linux/
[root@Centos2 ~]# chmod g+s linux/
[root@Centos2 ~]# chown user1:user2 linux/
[root@Centos2 ~]# ls -ld linux/
drwxr-sr-x 2 user1 user2 4096 Mar 17 22:47 linux/
[root@Centos2 ~]# touch linux/linux.txt
[root@Centos2 ~]# ls -l linux/
total 0
-rw-r--r-- 1 root user2 0 Mar 17 22:48 linux.txt
ps: 
set_uid:     擁有set_uid權限(臨時擁有該命令的屬主去執行二進制的命令,只能用於文件)
set_gid:     繼承目錄屬組權限
stick_bit:    防刪除位, 其它用戶不能刪除,只有建立者能刪
詳細請見: http://www.zhukun.net/archives/5962


6、 連接文件

        1. 軟鏈接

[root@Centos2 linux]# echo "11111" > 1.txt
[root@Centos2 linux]# ln -s 1.txt  /home/home_1.txt
[root@Centos2 linux]# ls -l /home/
……………………/省略
lrwxrwxrwx  1 root  root     5 Mar 17 23:40 home_1.txt -> 1.txt
[root@Centos2 linux]# rm -rf /home/home_1.txt
[root@Centos2 linux]# ls -l /home/

       2. 硬鏈接

[root@Centos2 linux]# ln 1.txt /home/home-1.txt
[root@Centos2 linux]# ls -l /home/
…………………………./省略
-rw-r--r--  2 root  root     6 Mar 17 23:40 home-1.txt
[root@Centos2 linux]# rm -rf /home/home-1.txt
[root@Centos2 linux]# ln 1.txt /boot/               
ln: creating hard link `/boot/1.txt' => `1.txt': Invalid cross-device link            
   #硬鏈接不能跨分區
ps:
硬鏈接=複製+同步+刪除源文件無障礙+不能跨分區+不能用於目錄
軟鏈接=快捷方式+同步+刪除源文件廢廢+能跨分區+能用於目錄



若有不對地址, 請及時提示

相關文章
相關標籤/搜索