日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
理解Linux文件所屬組:CAPI(linux文件所屬組capi)

在Linux系統(tǒng)中,不光每個文件都有一個所有者(owner),還有一個所屬組(group)的概念。所屬組指的是文件所在的組,在文件訪問管理中擔任著重要角色。一些操作,比如讀取、寫入和執(zhí)行,都需要通過組的定義來授權文件訪問。在Linux系統(tǒng)中,C語言也提供了API來處理文件所屬組的操作,開發(fā)者可以使用這些API來進行文件訪問控制的編程。

成都創(chuàng)新互聯(lián)公司專注于湖口企業(yè)網站建設,響應式網站開發(fā),購物商城網站建設。湖口網站建設公司,為湖口等地區(qū)提供建站服務。全流程按需開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

本文將介紹Linux系統(tǒng)中的文件所屬組概念,以及C語言API如何為文件訪問提供了支持。

Linux中文件所屬組的概念

在Linux中,每個文件都有一個所有者和一個所屬組。所有者一般指的是文件創(chuàng)建者或擁有者,可以理解為文件的主人。所有者默認擁有對文件的所有訪問權限。每個文件所屬組也是一個標識符(ID),可以是一個用戶組或其他類型的組。組成員可以被授權在文件級別上進行訪問。如果一個組具有執(zhí)行權限,組中的任何成員都可以執(zhí)行該文件。

對于大多數Linux系統(tǒng)管理員來說,文件訪問權限是一個非常熟悉的主題。權限由三個分組控制:文件所有者、文件所屬組以及其他人。每個分組都可以分別授予讀?。╮)、寫入(w)和執(zhí)行(x)的權限。這些權限的合理分配及控制可以保護文件安全,并鼓勵文件共享。

C語言API中的文件所屬組支持

Linux系統(tǒng)提供了訪問文件所述組的多個工具和API,包括C語言API。C語言是一種面向過程的語言,有著非常豐富的文件訪問API,并支持對文件所屬組的操作。以下是C API中的幾個實現(xiàn):

1. getgid(): 獲取進程的實際組ID。

2. getegid(): 獲取進程的有效組ID。

3. setgid(): 設置進程的組ID,只有超級用戶有權限改變組ID。

4. setegid(): 設置進程的有效組ID,并返回之前的值。

5. getgroups(): 獲取進程所在的所有組ID。

6. setgroups(): 設置進程的所有組ID。

使用這些API可以實現(xiàn)對文件訪問控制的編程。在C語言API中,可以使用組ID或者組名來獲取或設置文件所屬組。系統(tǒng)會在文件中存儲文件所有者及其所在組的信息。

下面是一段C API的示例代碼:

“`

#include

#include

#include

#include

#include

#include

int mn(int argc, char** argv) {

// 文件所有者

uid_t owner_uid = getuid();

// 文件所屬組

gid_t owner_gid = getgid();

// 獲取當前進程的有效組ID

gid_t process_egid = getegid();

// 打印文件信息

printf(“Owner UID=%d GID=%d\n”, owner_uid, owner_gid);

printf(“Effective GID=%d\n”, process_egid);

return 0;

}

“`

在這個例子中,使用了幾個C語言API函數獲取了文件所有者、所屬組以及當前進程的有效組ID。這些信息可以實現(xiàn)編程時對文件訪問的權限管理。

相關問題拓展閱讀:

  • Linux下的umask、特殊權限與ACL權限

Linux下的umask、特殊權限與ACL權限

在了解到Linux系統(tǒng)上的文件目錄權限,有時候你會發(fā)現(xiàn)為什么剛創(chuàng)建的文件是

-rw-r–r–

這個權限,目錄是

drwxr-xr-x

權限,有些是

-rwsr-xr-x

,又有些是

drwsrws–T

?這些則與umask、特殊權限有關。

什么是umask?umask一般是用在你初始創(chuàng)建一個目錄或者文件的時候賦予他們的權限。它與chmod的效果剛好相反,umask設置的是權限“補碼”,而chmod設置的是文件權限碼。一般在/etc/profile、

或用戶家目錄下的.bash_profile或.profile中設置umask值。

默認的umask是0022,0022四個數字代表是賦值初始化準備丟棄的權限。(相對應文件來說,x權限就算沒說明出來丟棄一樣必須默認丟棄)

  之一個0代表suid 丟棄的權限;

  第二個0代表本文件/目錄擁有者什么權限都沒丟棄;

  第三個2代表本文件/目錄的用戶組丟棄了w權限;

  第四個2代表本文件/目錄的文件/目錄的用戶組丟棄了w權限。

  一般我們會這樣表示:

umask +default permission(默認權限) =777(目錄)/666(文件)

但存在特殊情況如果把umask設為135呢?

要了解特殊權限需對安全上下文有一個概念:

前提:進程有屬主和屬組;文件有屬主和屬組

(1) 任何一個可執(zhí)行程序文件能不能啟動為進程,取決發(fā)起者對程序文件是否擁有執(zhí)行權限

(2) 啟動為進程之后,其進程的屬主為發(fā)起者,進程的屬組為發(fā)起者所屬的組

(3) 進程訪問文件時的權限,取決于進程的發(fā)起者

(a) 進程的發(fā)起者,同文件的屬主:則應用文件屬限

(b) 進程的發(fā)起者,屬于文件屬組;則應用文件屬組權限

(c) 應用文件“其它”權限

1.SUID 權限僅對二進制程序(binary program)有效;

2.執(zhí)行者對于該程序需要具有x 的可執(zhí)行權限;

3.本權限僅在執(zhí)行該程序的過程中有效(run-time);

4.執(zhí)行者將具有該程序擁有者(owner) 的權限。

5.SUID設置在目錄上無意義

權限設定:

chmod u+s FILE…

chmod u-s FILE…

s 標志在文件擁有者的x 項目為SUID,那s 在群組的x 時則稱為Set GID

# ls -l /usr/bin/locate

-rwx–s–x. 1 root slocateJun/usr/bin/locate

與SUID 不同的是,SGID 可以針對文件或目錄來設定!如果是對文件來說, SGID 有如下的功能:

-1.SGID 對二進制程序有用;

-2.程序執(zhí)行者對于該程序來說,需具備x 的權限;

-3.執(zhí)行者在執(zhí)行的過程中將會獲得該程序群組的支持!

# ll /usr/bin/locate /var/lib/mlocate/mlocate.db

-rwx–s–x. 1 root slocateJun/usr/bin/locate

-rw-r—–. 1 root slocateJun 15 03:44 /var/lib/mlocate/mlocate.db

與SUID 非常的類似,使用xiaoming 這個賬號去執(zhí)行l(wèi)ocate 時,那xiaoming將會取得slocate 群組的支持, 因此就能夠去讀取 mlocate.db 。

SGID 也能夠用在目錄上,這也是非常常見的一種用途

目錄設定了SGID 的權限后,他將具有如下的功能:

-1. 用戶若對于此目錄具有r 與x 的權限時,該用戶能夠進入此目錄;

-2.用戶在此目錄下的有效群組(effective group)將會變成該目錄的群組;

-3.用途:若用戶在此目錄下具有w 的權限(可以新建文件),則使用者所建立的新文件,該新文件的群組與此目錄的群組相同。

這個 Sticky Bit, SBIT 目前只針對目錄有效,sticky 設置在文件上無意義。SBIT 對于目錄的作用是:

-1.當用戶對于此目錄具有w, x 權限,亦即具有寫入的權限時;

-2.當用戶在該目錄下建立文件或目錄時,僅有自己與root 才有權力刪除該文件

SUID/SGID/SBIT 權限設定

-rwSrwSrwT 1 root root 0 Jun 16 02:53 test

設定權限成為 -rws–x–x 的模樣:

# chmod u=rwxs,go=x test; ls -l test

-rws–x–x 1 root root 0 Jun 16 02:53 test

承上,加上 SGID 與 SBIT 在上述的文件權限中!

# chmod g+s,o+t test; ls -l test

-rws–s–t 1 root root 0 Jun 16 02:53 test

1】ACL 是Access Control List 的縮寫,主要的目的是在提供傳統(tǒng)的owner,group,others 的read,write,execute 權限之外的細部權限設定。ACL 可以針對單一使用者,單一文件或目錄來進行

ACL 主要可以針以下來控制權限呢:

1.使用者 (user):可以針對使用者來設定權限;

2.群組 (group):針對群組為對象來設定其權限;

3.默認屬性(mask):還可以針對在該目錄下在建立新文件/目錄時,規(guī)范新數據的默認權限;

及1.ACL:Access Control List,實現(xiàn)靈活的權限管理;2.CentOS7默認創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能;3.CentOS7之前版本,默認手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動增加tune2fs –o acl/dev/sdb1

mount –o acl/dev/sdb1 /mnt/test

4.ACL生效順序:所有者,自定義用戶,自定義組,其他人

為多用戶或者組的文件和目錄賦予訪問權限rwx

2】ACL 的設定技巧: getfacl, setfacl

-x :刪除后續(xù)的 acl 參數,不可與 -m 合用;

-b :移除『所有的』 ACL 設定參數;

-k :移除『預設的』 ACL 參數,

-R :遞歸設定 acl ,亦即包括次目錄都會被設定起來;

-d :設定『預設 acl 參數』的意思!只對目錄有效,在該目錄新建的數據會引用此默認值

例:# touch acl_test1

# ll acl_test1

-rw-r–r–. 1 root root 0 Jul 21 17:33 acl_test1

# setfacl -m u:xiaoming:rx acl_test1

# ll acl_test1

-rw-r-xr–+ 1 root root 0 Jul 21 17:33 acl_test1

# setfacl -m u::rwx acl_test1

# ll acl_test1

-rwxr-xr–+ 1 root root 0 Jul 21 17:33 acl_test1

設定值中的 u 后面無使用者列表,代表設定該文件擁有者

2.getfacl 指令用法余setfacl一樣

例:# getfacl acl_test1

file: acl_test1 acl.txt

setfacl -R -b /tmp/dir1

清除dir目錄的ACL權限

setfacl -R –set-file=acl.txt /tmp/dir1

setfacl –restore acl.txt

linux 文件所屬組 c api的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux 文件所屬組 c api,理解Linux文件所屬組:C API,Linux下的umask、特殊權限與ACL權限的信息別忘了在本站進行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網、IDC服務、應用軟件開發(fā)、網站建設推廣的公司,為客戶提供互聯(lián)網基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)成都老牌IDC服務商,專注四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數據中心機房租用、服務器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。


本文題目:理解Linux文件所屬組:CAPI(linux文件所屬組capi)
本文路徑:http://www.5511xx.com/article/cdjsoei.html