天天看點

linux權限介紹之-粘滞鍵權限t-讓檔案可讀寫不可删

一個系統一般都是有多個賬号使用的,而有些目錄和檔案需要賦予其他使用者可讀寫的權限,比如/tmp/a.tmp

這就有一個問題了,比如a在/tmp目錄下放的檔案a.tmp,而b也需要有/tmp的權限,他就可以删除這個a.tmp檔案;

如果隻想讓b有讀寫這個檔案的權限,但是沒有删除這個檔案的權限該怎麼辦呢?這時候就可以利用t鍵位,粘着位權限

測試如下:

<code>01</code>

<code>#切換到a使用者下</code>

<code>02</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># su a</code>

<code>03</code>

<code>[a@</code><code>test</code> <code>tmp]$ ll -d /tmp</code>

<code>04</code>

<code>drwxrwxrwx 2 root root 4096 oct 28 23:55 /tmp</code>

<code>05</code>

<code>#建立a.tm檔案并配置任何人都有最大的777權限</code>

<code>06</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>touch</code> <code>a.tm</code>

<code>07</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>chmod</code> <code>777 a.tm</code>

<code>08</code>

<code>[a@</code><code>test</code> <code>tmp]$ </code><code>ls</code> <code>-l a.tm</code>

<code>09</code>

<code>-rwxrwxrwx 1 a a 0 oct 28 23:55 a.tm</code>

<code>10</code>

<code>#檢視,這時候任何人都可以對a.tm做任何操作</code>

<code>#現在我們對/tmp目錄賦予粘着位t權限</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># chmod +t /tmp</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># ls -dl /tmp </code>

<code>#檢視權限已經多了一個t</code>

<code>drwxrwxrwt 2 root root 4096 oct 28 23:59 /tmp</code>

<code>#切換到賬号b下,删除a.tm,報錯了無法删除</code>

<code>[root@</code><code>test</code> <code>tmp]</code><code># su b</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>rm</code> <code>-r a.tm</code>

<code>rm</code><code>: cannot remove `a.tm': operation not permitted</code>

<code>#檢視b對a.tm擁有完全權限的,但是也無法删除</code>

<code>11</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>ls</code> <code>-l a.tm</code>

<code>12</code>

<code>13</code>

<code>#測試b對a.tm檔案的寫入和讀取,完全沒有問題</code>

<code>14</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>echo</code> <code>b-</code><code>test</code> <code>&gt;a.tm</code>

<code>15</code>

<code>[b@</code><code>test</code> <code>tmp]$ </code><code>cat</code> <code>a.tm</code>

<code>16</code>

<code>b-</code><code>test</code>

<code>17</code>

<code>18</code>

<code>19</code>

<code>增加粘滞位:</code><code>chmod</code> <code>+t /tmp</code>

<code>20</code>

<code>删除粘滞位:</code><code>chmod</code> <code>-t /tmp</code>

至此,目的已經達到了,讓一個賬号對一個檔案有讀寫的權限卻無法删除~

備注:擁有t粘着位權限的目錄下的檔案,除了屬主使用者外,root使用者也可以删除。

繼續閱讀