linux中權限765啥意思,Linux中的文件權限

Linux系統中的每一個文件都與多種權限類型相關聯。在這些權限中,我們主要和三類權限打交道:用戶(user)、用戶組(group)和其他用戶(others)。用戶是文件的所有者;用戶組是指和文件所有者在同一組的其他多個用戶的集合;其他用戶是除用戶或用戶組之外的任何用戶。

ls -l命令可以列出文件的權限,如:

-rw-rw-r-- 1 lfqy lfqy ?529 ?6月 11 20:21 file-authority.txt

-rw-rw-r-- 1 lfqy lfqy ? ?0 ?6月 11 19:02 helloworld

drwxrwxr-x 2 lfqy lfqy 4096 ?6月 11 20:21 try

可以看出,每一行輸出代表一個文件。每行輸出的前10個字符代表文件的權限信息:第一個字符代表文件的類型(-表示普通文件,d表示目錄,c表示字符設備,b表示塊設備,l表示符號鏈接,s表示套接字,p表示管道),剩下的部分可以劃分成三組(第一組的三個字符對應用戶權限,第二組的三個字符對應用戶組權限,第三組的三個字符對應其他用戶權限。這9個字符中的每一個字符指明是否設置了某種權限,如果設置了權限,對應位置上就會出現一個字符,否則就一個'-'表明沒有設置對應的權限)。其中r代表讀權限,w代表寫權限,x代表執行權限,比如第一行中的file-authority.txt文件屬于用戶lfqy,該用戶對其擁有讀寫權限,而沒有執行權限,和lfqy在同一組的其他用戶也擁有對該文件的讀寫權限,而其他用戶對其只有讀權限。

1、文件的權限

1.1 文件的基本權限

rwx分別對應文件的讀權限、寫權限和可執行權限,然而,對于目錄來說,這三種權限有不同的含義。目錄的讀權限允許讀取目錄中文件和子目錄的列表,目錄的寫權限允許在目錄中創建或刪除文件或目錄,目錄的可執行權限指明是否可以訪問目錄中的文件和子目錄。

1.2 setuid、setgid和sticky bit

實際上,除了最基本的讀、寫和執行權限之外,Linux中還有setuid、setgid和sticky bit等三種權限。下面分別解釋這三種權限。

關于setuid和setgid維基百科上的解釋如下:

setuid and setgid (short for "set user ID upon execution" and "set group ID upon execution", respectively) are Unix access rights flags that allow users to run an executable with the permissions of the executable's owner or group respectively and to change behaviour in directories. They are often used to allow users on a computer system to run programs with temporarily elevated privileges in order to perform a specific task.

The setuid and setgid flags, when set on a directory, have an entirely different meaning.

Setting the setgid permission on a directory (chmod g+s) causes new files and subdirectories created within it to inherit its group ID, rather than the primary group ID of the user who created the file (the owner ID is never affected, only the group ID). Newly created subdirectories inherit the setgid bit. Thus, this enables a shared workspace for a group without the inconvenience of requiring group members to explicitly change their current group before creating new files or directories. Note that setting the setgid permission on a directory only affects the group ID of new files and subdirectories created after the setgid bit is set, and is not applied to existing entities. Setting the setgid bit on existing subdirectories must be done manually, with a command such as the following:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

The setuid permission set on a directory is ignored on UNIX and Linux systems. FreeBSD can be configured to interpret it analogously to setgid, namely, to force all files and sub-directories to be owned by the top directory owner.

1.2.1 setuid權限

setuid可以設置使文件在執行階段具有文件所有者的權限。setuid屬性出往往用用戶權限的第三個字符表示:如果用戶權限的第三個字符是s,則表示該文件的屬主對該文件有可執行權限的同時,該文件還有setuid權限;如果用戶權限的第三個字符是S,則表示該文件的屬主對該文件沒有可執行權限,但是該文件有setuid權限(實際上,從下文也可一看出,這種情況,沒有可執行權限只有setuid權限無任何意義)。setuid權限允許用戶以其文件擁有者的權限來執行可執行文件,即使這個可執行文件是由其他用戶運行的。從下面的例子中可以看出setuid權限的意思。

Linux中的密碼通常是保存在"/etc/paswd"和"/etc/shadow"文件中,這兩個文件對系統安全至關重要,因此只有Root用戶才能對其執行讀寫操作。以管理員的身份登陸系統,在Linux提示符下執行"ls /etc/passwd /etc/shadow"命令,在返回信息中可以看到普通用戶對上述這兩個文件并沒有寫權限,因此從文件屬性的角度看,普通用戶在更改自身密碼時,是無法將密碼信息寫入到上述文件中的,哪么用戶是怎樣成功的更改密碼的呢?實際上,問題的關鍵不在于密碼文件本身,而在于密碼更改命令"passwd"。在提示符下執行命令"ls /usr/bin/passwd",在返回信息中的文件所有者執行權限位上顯示"s"字樣,表示"passwd"命令具setuid權限,其所有者為root,這樣普通用戶在執行"passwd"命令時,實際上以有效用戶root的身份來執行的,并具有了相應的權限(包括讀寫passwd和shadow文件的權限),從而將新的密碼寫入到"/etc/passwd"和"/etc/shadow"文件中,當命令執行完畢,該用戶的身份立即消失。這樣,通過setuid權限,普通用戶在執行passwd程序時,也能獲得passwd程序屬主(root)一樣的權限(也可以對文件passwd和shadow進行讀寫)。這樣,普通用戶也可以通過passwd工具來修改自身密碼。

1.2.2 setgid權限

setgid權限的含義和setuid類似,它允許用戶以其擁有者所在的組的權限來執行可執行文件。setgid屬性往往用用戶組權限的第三個字符表示:如果用戶權限的第三個字符是s,則表示該文件的屬主對該文件有可執行權限的同時,該文件還有setgid權限;如果用戶組權限的第三個字符是S,則表示該文件的屬主對該文件沒有可執行權限,但是該文件有setgid權限(實際上,從下文也可一看出,這種情況,沒有可執行權限只有setuid權限無任何意義)。setgid權限允許用戶以其文件擁有者所在組的權限來執行可執行文件,即使這個可執行文件是由其他用戶運行的。

1.2.3 sticky bit

關于sticky,維基百科上的解釋如下:

In computing, the sticky bit is a user ownership access-right flag that can be assigned to files and directories on Unix systems.

The most common use of the sticky bit today is on directories. When the sticky bit is set, only the item's owner, the directory's owner, or the superuser can rename or delete files. Without the sticky bit set, any user with write and execute permissions for the directory can rename or delete contained files, regardless of owner. Typically this is set on the /tmp directory to prevent ordinary users from deleting or moving other users' files. This feature was introduced in 4.3BSD in 1986 and today it is found in most modern Unix systems.

sticky-bit之后,盡管其他用戶有寫權限,也必須由屬主執行刪除、移動等操作。對一個目錄設置了sticky-bit之后,存放在該目錄的文件僅準許其屬主執行刪除、移動等操作。

sticky bit出現在其他用戶權限中的執行權限(x)位置,使用t或T表示。t表示既有可執行權限,又設置了sticky bit,T表示只設置了sticky bit而沒有設置可執行權限。

2、管理文件權限

2.1 設置基本權限

2.1.1 用助記符的方式設置文件基本權限

可以采用"chmod u=rwx g=rw o=r filename"來設置文件的權限。其中u代表用戶的權限,g代表用戶所帶組的權限,o代表其它用戶的權限。如果要添加權限可以"chmod a+x filename"(給所有的用戶添加可執行權限),"chmod o+x filename"給其他用戶增加可執行權限。如果要刪除相應的權限,可以"chmod a-x filename"(刪除所有用戶的可執行權限)。

2.1.2 用八進制數的方式設置文件的基本權限

也可以采用八進制數的形式。讀、寫和執行權限都有與之對應的唯一的8進制數:r(4),w(2),x(1)。我們可以將權限序列的八進制值相加來獲得所需的權限組合:rwx(4+2+1=7),rw-(4+2=6),r-x(4+1=5)等。因此,用8進制設置權限的命令為"chmod 765 filename"。

2.2 設置setuid,setgid和sticky bit

2.2.1 用助記符的方式

chmod u +s temp -- 為temp文件加上setuid標志

chmod g +s tempdir -- 為tempdir目錄加上setgid標志

chmod o +t temp -- 為temp文件加上sticky標志

2.2.2 采用八進制方式

對一般文件通過三組八進制數字來置標志, 如 666, 777, 644等. 如果設置這些特殊標志, 則在這組數字之外外加一組八進制數字. 如 4666, 2777等. 這一組八進制數字三位的意義如下:

abc

a - setuid位, 如果該位為1, 則表示設置setuid 4xxx

b - setgid位, 如果該位為1, 則表示設置setgid ?2xxx

c - sticky位, 如果該位為1, 則表示設置sticky ? 1xxx

設置完這些標志后, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執行標志位置上顯示. 如

rwsrw-r-- 表示有setuid標志

rwxrwsrw- 表示有setgid標志

rwxrw-rwt 表示有sticky標志

對于setuid,setgid和sticky bit,如果表示這寫權限的位上本來有x, 則這些特殊標志顯示為小寫字母 (s, s, t);若無執行權限則顯示為大寫字母(S, S, T)。

3、其它

文件的權限是為了使用的安全性和方便性而設置的,了解這寫權限的含義能是我們更加方便的使用Linux,防制由于文件權限管理不善而帶來的安全問題。實際上,在設置文件的權限時,應該慎重考慮,尤其是在使用setuid、setgid和sticky bit等權限的時候。

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/29366942/viewspace-1062231/,如需轉載,請注明出處,否則將追究法律責任。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532801.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532801.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532801.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CV中的色彩空間大全

HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV顏色模型 HSV顏色空間 HSV(hue,saturation,value)顏色空間的模型對應于圓柱坐標系中的一個圓錐形子集,圓錐的頂面對應于V1. 它包含RGB模型中的R1,G1,B1 三個面,所代表的…

linux 系統調用時怎么知道當前上下文屬于那個進程,linux – 編寫系統調用來計算進程的上下文切換...

如果您的系統調用只應報告統計信息,則可以使用內核中已有的上下文切換計數代碼.struct rusage {...long ru_nvcsw; /* voluntary context switches */long ru_nivcsw; /* involuntary context switches */};您可以通過運行來嘗試:$/usr/bin/time -v /bin/ls -R....V…

linux串口緩沖區的大小,linux-----------串口設置緩沖器的大小

轉自:http://stackoverflow.com/questions/10815811/linux-serial-port-reading-can-i-change-size-of-input-bufferYou want to use the serial IOCTL TIOCSSERIAL which allows changing both receive buffer depth and send buffer depth (among other things). The maximum…

FLOPs、FLOPS、Params的含義及PyTorch中的計算方法

FLOPs、FLOPS、Params的含義及PyTorch中的計算方法 含義解釋 FLOPS:注意全大寫,是floating point operations per second的縮寫(這里的大S表示second秒),表示每秒浮點運算次數,理解為計算速度。是一個衡量…

設置中文linux輸入ubuntu,Linux_ubuntu怎么設置成中文?ubuntu中文設置圖文方法,  很多朋友安裝ubuntu后,發 - phpStudy...

ubuntu怎么設置成中文?ubuntu中文設置圖文方法很多朋友安裝ubuntu后,發現都是英文,看不懂要怎么辦?其實ubuntu是可以設置成中文的,下文小編就為大家帶來ubuntu中文的設置方法,一起去看下設置方法吧。ubuntu中文設置方…

科普 | 單精度、雙精度、多精度和混合精度計算的區別是什么?

科普 | 單精度、雙精度、多精度和混合精度計算的區別是什么? 轉自:https://zhuanlan.zhihu.com/p/93812784 我們提到圓周率 π 的時候,它有很多種表達方式,既可以用數學常數3.14159表示,也可以用一長串1和0的二進制長串表示。 …

linux 磁盤分配 簡書,linux 磁盤分區

1物理磁盤的構成: 盤面:由一圈一圈的磁道組成機械手臂:讀取數據主軸馬達:幫助機械手臂轉動2 扇區:磁盤上存取數據的最小單位512字節按照扇區分配大小,如果數據只有一字節也會占用512字節簇:用若…

條件控制與條件傳送詳解

條件控制與條件傳送詳解 提要 CSAPP3e中文譯本 3.6.5 用條件控制來實現條件分支 3.6.6 用條件傳送來實現條件分支 CSAPP3e第三章前面主要是介紹了機器級代碼的二進制形式和匯編形式、反匯編、x86匯編的基礎指令、條件碼及其訪問方式等。 在介紹到匯編語言的條件分支時分了兩…

聯合體(union)的使用方法及其本質

聯合體(union)的使用方法及其本質 轉自:https://blog.csdn.net/huqinwei987/article/details/23597091 有些基礎知識快淡忘了,所以有必要復習一遍,在不借助課本死知識的前提下做些推理判斷,溫故知新。 1…

linux設備驅動之串口移植,Linux設備驅動之UART驅動結構

一、對于串口驅動Linux系統中UART驅動屬于終端設備驅動,應該說是實現串口驅動和終端驅動來實現串口終端設備的驅動。要了解串口終端的驅動在Linux系統的結構就先要了解終端設備驅動在Linux系統中的結構體系,一方面自己了解的不夠,另一發面關于…

linux python復制安裝,復制一個Python全部環境到另一個環境,python另一個,導出此環境下安裝的包...

復制一個Python全部環境到另一個環境,python另一個,導出此環境下安裝的包導出此環境下安裝的包的版本信息清單pipfreeze>requirements.txt聯網,下載清單中的包到all-packet文件夾[[email protected] ~]# pip download -d ./all-packet -r requirement…

NVIDIA英偉達的Multi-GPU多卡通信框架NCCL

NVIDIA英偉達的Multi-GPU多卡通信框架NCCL 筆者注:NCCL 開源項目地址:https://github.com/NVIDIA/nccl 轉自:https://www.zhihu.com/question/63219175/answer/206697974 NCCL是Nvidia Collective multi-GPU Communication Library的簡稱&…

C語言n個坐標點間的最大距離,c語言已知兩點坐標,求另一點到穿過這兩點的直線最短距離。...

c語言已知兩點坐標,求另一點到穿過這兩點的直線最短距離。以下文字資料是由(歷史新知網www.lishixinzhi.com)小編為大家搜集整理后發布的內容,讓我們趕快一起來看一下吧!c語言已知兩點坐標,求另一點到穿過這兩點的直線最短距離。#…

[分布式訓練] 單機多卡的正確打開方式:理論基礎

[分布式訓練] 單機多卡的正確打開方式:理論基礎 轉自:https://fyubang.com/2019/07/08/distributed-training/ 瓦礫由于最近bert-large用的比較多,踩了很多分布式訓練的坑,加上在TensorFlow和PyTorch之間更換,算是熟…

s3c2416開發板 linux,S3C2416移植內核Linux3.1的wm9713聲卡過程

移植內核的聲卡驅動。原因沒有聲卡驅動,WM9713聲卡驅動移植(原來的內核有UDA1341聲卡驅動,我們再次基礎上直接修改)1、直接復制內核得到三個文件:s3c2416_wm9713.c , wm9713.c , s3c2416_ac97.c.linux-3.1\sound\soc\codecs\Wm9713.c---->wm9713.c;li…

Linux查看文件內容命令:cat, tail, head, more, less

Linux查看文件內容命令:cat, tail, head, more, less cat 直接顯示整個文件。 cat直接顯示全部文件內容,沒有換頁等交互。 cat filenamemore more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會…

linux查看隊列 msg,linux第10天 msg消息隊列

cat /proc/sys/kernel/msgmax最大消息長度限制cat /proc/sys/kernel/msgmnb消息隊列總的字節數cat /proc/sys/kernel/msgmni消息條目數消息隊列綜合案例//server#include #include #include #include #include #include #include #include #define ERR_EXIT(m)do{perror(m);}wh…

Linux中 C++ main函數參數argc和argv含義及用法

Linux中 C main函數參數argc和argv含義及用法 簡介 argc 是 argument count的縮寫,表示傳入main函數的參數個數; argv 是 argument vector的縮寫,表示傳入main函數的參數序列或指針,并且第一個參數argv[0]一定是程序的名稱&…

c語言六位搶答器課程設計,51單片機八路搶答器課程設計

;說明:本人的這個設計改進后解決了前一個版本中1號搶答優先的問題,并增加了錦囊的設置,當參賽選手在回答問題時要求使用錦囊,則主持人按下搶答開始鍵,計時重新開始。;八路搶答器電路請看下圖是用ps仿真的,已…

ELF文件詳解—初步認識

ELF文件詳解—初步認識 轉自:https://blog.csdn.net/daide2012/article/details/73065204 一、 引言 在講解ELF文件格式之前,我們來回顧一下,一個用C語言編寫的高級語言程序是從編寫到打包、再到編譯執行的基本過程,我們知道在C…