{"id":78688,"date":"2026-05-31T00:06:25","date_gmt":"2026-05-31T00:06:25","guid":{"rendered":"http:\/\/bangla.sitestree.com\/?p=78688"},"modified":"2026-05-31T00:06:27","modified_gmt":"2026-05-31T00:06:27","slug":"special-permissions-suid-sgid-sticky-bit","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=78688","title":{"rendered":"Special Permissions: SUID, SGID, sticky bit"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Linux Special Permissions: SUID, SGID, and Sticky Bit<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Linux normally uses three permission groups:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>u = user\/owner\ng = group\no = others\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And three basic permissions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>r = read\nw = write\nx = execute\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l file.txt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwxr-xr--\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">But Linux also has <strong>special permissions<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID       = user +s\nSGID       = group +s\nSticky Bit = others +t\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">They appear in <code>ls -l<\/code> output as:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>s, S, t, or T\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">1. SUID \u2014 Set User ID<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Meaning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SUID<\/strong> means:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">When an executable file runs, it runs with the permission of the file owner, not the user who started it.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">SUID is mainly useful on <strong>executable programs<\/strong>, not normal text files.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Set SUID<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod u+s filename\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Numeric form:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 4755 filename\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>4<\/code> means SUID.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Remove SUID<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod u-s filename\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Example: <code>\/usr\/bin\/passwd<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>passwd<\/code> command lets a normal user change their own password.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l \/usr\/bin\/passwd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possible output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwsr-xr-x 1 root root ... \/usr\/bin\/passwd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notice:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rws\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>s<\/code> appears in the <strong>user execute position<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Normal owner permission would be:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rwx\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">With SUID, it becomes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rws\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Because <code>\/usr\/bin\/passwd<\/code> is owned by <code>root<\/code>, when a normal user runs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>passwd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">the program temporarily runs with the file owner\u2019s privilege, which is <code>root<\/code>, but only for the controlled task of changing the password.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">SUID: lowercase <code>s<\/code> vs uppercase <code>S<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is very important.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lowercase <code>s<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lowercase <code>s<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID is set AND owner execute permission exists.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>touch demo\nchmod 755 demo\nchmod u+s demo\nls -l demo\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwsr-xr-x 1 user user ... demo\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rws\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>owner has read + write + execute\nSUID is also set\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Uppercase <code>S<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uppercase <code>S<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID is set BUT owner execute permission is missing.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>touch demo\nchmod 644 demo\nchmod u+s demo\nls -l demo\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwSr--r-- 1 user user ... demo\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rwS\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID is set\nbut owner execute permission is missing\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So uppercase <code>S<\/code> usually means the special permission is set, but it is not useful for execution because <code>x<\/code> is missing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. SGID \u2014 Set Group ID<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Meaning on files<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SGID<\/strong> on an executable file means:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">When the file runs, it runs with the permission of the file\u2019s group owner.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Meaning on directories<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SGID is especially useful on <strong>directories<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On a directory, SGID means:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">New files and subdirectories created inside the directory inherit the directory\u2019s group ownership.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This is very useful for shared project folders.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Set SGID<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod g+s filename_or_directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Numeric form:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 2755 filename_or_directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>2<\/code> means SGID.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Remove SGID<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod g-s filename_or_directory\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Example: Shared project directory<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose we have a group named <code>developers<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/project\nsudo chgrp developers \/project\nsudo chmod 2775 \/project\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -ld \/project\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possible output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwsr-x 2 root developers ... \/project\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notice the group part:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rws\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>group has read + write + execute\nSGID is set\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now when a user creates a file inside <code>\/project<\/code>, the file can inherit the directory\u2019s group:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>touch \/project\/app.txt\nls -l \/project\/app.txt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possible output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rw-r--r-- 1 alice developers ... app.txt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Even if Alice\u2019s normal primary group is different, the file is created with the <code>developers<\/code> group because the parent directory has SGID.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">SGID: lowercase <code>s<\/code> vs uppercase <code>S<\/code><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Lowercase <code>s<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lowercase <code>s<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SGID is set AND group execute permission exists.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir shared\nchmod 775 shared\nchmod g+s shared\nls -ld shared\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwsr-x 2 user user ... shared\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The group permission part is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rws\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means SGID is set and the group can enter\/search the directory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uppercase <code>S<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uppercase <code>S<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SGID is set BUT group execute permission is missing.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir shared\nchmod 764 shared\nchmod g+s shared\nls -ld shared\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwSr-- 2 user user ... shared\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The group permission part is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rwS\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means SGID is set, but group execute is missing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a directory, this is usually a problem because group members need <code>x<\/code> permission to enter or access items inside the directory.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. Sticky Bit<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Meaning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Sticky Bit<\/strong> is mostly used on directories.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It means:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Users can create files in the directory, but they can delete only their own files.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This is useful for shared writable directories.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Set Sticky Bit<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod o+t directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Numeric form:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 1777 directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>1<\/code> means Sticky Bit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Remove Sticky Bit<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod o-t directory\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Example: <code>\/tmp<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>\/tmp<\/code> directory is shared by many users and programs.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -ld \/tmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possible output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwt 10 root root ... \/tmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notice the last character:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>t\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That means Sticky Bit is set.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The directory is writable by many users, but one user cannot delete another user\u2019s files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Example: Create a shared temporary directory<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/sharedtmp\nsudo chmod 1777 \/sharedtmp\nls -ld \/sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwt 2 root root ... \/sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now different users can create files inside <code>\/sharedtmp<\/code>, but they cannot delete files owned by other users.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Sticky Bit: lowercase <code>t<\/code> vs uppercase <code>T<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sticky Bit uses <code>t<\/code> or <code>T<\/code>, not <code>s<\/code> or <code>S<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lowercase <code>t<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lowercase <code>t<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sticky Bit is set AND others execute permission exists.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir sharedtmp\nchmod 777 sharedtmp\nchmod o+t sharedtmp\nls -ld sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwt 2 user user ... sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The others permission part is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rwt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>others have read + write + execute\nSticky Bit is set\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Uppercase <code>T<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uppercase <code>T<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sticky Bit is set BUT others execute permission is missing.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir sharedtmp\nchmod 776 sharedtmp\nchmod o+t sharedtmp\nls -ld sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwT 2 user user ... sharedtmp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The others permission part is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rwT\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This means Sticky Bit is set, but others do not have execute permission.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a directory, this usually means others cannot properly enter or access the directory.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Quick Summary of <code>s<\/code>, <code>S<\/code>, <code>t<\/code>, and <code>T<\/code><\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symbol<\/th><th>Location in <code>ls -l<\/code><\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>s<\/code><\/td><td>user execute position<\/td><td>SUID set and user execute exists<\/td><\/tr><tr><td><code>S<\/code><\/td><td>user execute position<\/td><td>SUID set but user execute missing<\/td><\/tr><tr><td><code>s<\/code><\/td><td>group execute position<\/td><td>SGID set and group execute exists<\/td><\/tr><tr><td><code>S<\/code><\/td><td>group execute position<\/td><td>SGID set but group execute missing<\/td><\/tr><tr><td><code>t<\/code><\/td><td>others execute position<\/td><td>Sticky Bit set and others execute exists<\/td><\/tr><tr><td><code>T<\/code><\/td><td>others execute position<\/td><td>Sticky Bit set but others execute missing<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Visual Examples<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Normal executable file<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwxr-xr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Owner has execute permission.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SUID with execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwsr-xr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SUID is active and owner execute exists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SUID without execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwSr-xr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SUID is set, but owner execute is missing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Normal group-executable directory<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Group has execute permission.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SGID directory with execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwsr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SGID is active and group execute exists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SGID directory without group execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwSr-x\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SGID is set, but group execute is missing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Sticky Bit directory with others execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sticky Bit is active and others execute exists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sticky Bit directory without others execute<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwT\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sticky Bit is set, but others execute is missing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Numeric Permission Summary<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Special permissions are added before the normal three permission digits.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Permission<\/th><th>Numeric value<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>SUID<\/td><td><code>4<\/code><\/td><td><code>chmod 4755 program<\/code><\/td><\/tr><tr><td>SGID<\/td><td><code>2<\/code><\/td><td><code>chmod 2775 shareddir<\/code><\/td><\/tr><tr><td>Sticky Bit<\/td><td><code>1<\/code><\/td><td><code>chmod 1777 sharedtmp<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 4755 program      # SUID + rwxr-xr-x\nchmod 2755 directory    # SGID + rwxr-xr-x\nchmod 1777 directory    # Sticky Bit + rwxrwxrwx\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You can also combine them:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 6755 program\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>6 = 4 + 2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So <code>6755<\/code> means:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID + SGID + rwxr-xr-x\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Command Summary<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Set SUID:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod u+s program\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Remove SUID:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod u-s program\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set SGID:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod g+s directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Remove SGID:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod g-s directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set Sticky Bit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod o+t directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Remove Sticky Bit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod o-t directory\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check permissions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l filename\nls -ld directory\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Practical Use Cases<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">SUID use case<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Used when a normal user needs to run a specific program with the file owner\u2019s privileges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l \/usr\/bin\/passwd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possible output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rwsr-xr-x 1 root root ... \/usr\/bin\/passwd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This allows users to change their passwords safely without giving them full root access.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">SGID use case<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Used for shared team directories.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/team\nsudo chgrp developers \/team\nsudo chmod 2775 \/team\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwsr-x root developers \/team\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Files created inside <code>\/team<\/code> inherit the <code>developers<\/code> group.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Sticky Bit use case<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Used for shared writable directories where users should not delete each other\u2019s files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/publicdrop\nsudo chmod 1777 \/publicdrop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drwxrwxrwt root root \/publicdrop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Users can create files, but they cannot delete other users\u2019 files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Final Blog Summary<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>SUID: Run an executable as the file owner.\nSGID: Run an executable as the file group, or make files inherit a directory group.\nSticky Bit: In shared directories, users can delete only their own files.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The lowercase letters mean the related execute permission is present:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>s = SUID\/SGID + execute\nt = Sticky Bit + execute\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The uppercase letters mean the special permission is set, but execute is missing:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>S = SUID\/SGID set, execute missing\nT = Sticky Bit set, execute missing\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For practical use, lowercase <code>s<\/code> and <code>t<\/code> are usually what you expect to see. Uppercase <code>S<\/code> or <code>T<\/code> often indicates a permission setup that should be reviewed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">REF: AI Tools\/ChatGPT<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Linux Special Permissions: SUID, SGID, and Sticky Bit Linux normally uses three permission groups: And three basic permissions: Example: Output: But Linux also has special permissions: They appear in ls -l output as: 1. SUID \u2014 Set User ID Meaning SUID means: When an executable file runs, it runs with the permission of the file &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=78688\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1976],"tags":[],"class_list":["post-78688","post","type-post","status-publish","format-standard","hentry","category-anything-linux","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":78678,"url":"http:\/\/bangla.sitestree.com\/?p=78678","url_meta":{"origin":78688,"position":0},"title":"Linux: ACL vs Selinux","author":"Sayed","date":"May 30, 2026","format":false,"excerpt":"ACL vs SELinux ACL and SELinux both control access, but they work at different levels. FeatureACLSELinuxFull nameAccess Control ListSecurity-Enhanced LinuxMain purposeGive extra file permissions to specific users\/groupsEnforce system-wide security policyAccess modelDAC: Discretionary Access ControlMAC: Mandatory Access ControlControlled byFile owner\/rootSELinux policy\/rootWorks onFiles\/directoriesFiles, processes, ports, services, usersCommon commandsgetfacl, setfaclgetenforce, ls -Z, semanage,\u2026","rel":"","context":"In &quot;Anything Linux&quot;","block_context":{"text":"Anything Linux","link":"http:\/\/bangla.sitestree.com\/?cat=1976"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":78684,"url":"http:\/\/bangla.sitestree.com\/?p=78684","url_meta":{"origin":78688,"position":1},"title":"Define and describe Selinux in general terms","author":"Sayed","date":"May 30, 2026","format":false,"excerpt":"SELinux stands for Security-Enhanced Linux. It is a Linux security system that adds an extra layer of protection to the operating system. It controls what users, programs, services, and processes are allowed to do. A simple definition: SELinux is a security feature in Linux that enforces strict rules about which\u2026","rel":"","context":"In &quot;Anything Linux&quot;","block_context":{"text":"Anything Linux","link":"http:\/\/bangla.sitestree.com\/?cat=1976"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":78680,"url":"http:\/\/bangla.sitestree.com\/?p=78680","url_meta":{"origin":78688,"position":2},"title":"Linux: Regular Permissions (symbolic\/numeric) vs ACL","author":"Sayed","date":"May 30, 2026","format":false,"excerpt":"Linux has two main permission layers: 1. Traditional permissions: user \/ group \/ others (UGO) 2. ACL permissions: extra permission rules for specific users\/groups 1. Traditional UGO permissions UGO means: u = user owner g = group owner o = others Example: chmod ugo+x script.sh means: Give execute permission to\u2026","rel":"","context":"In &quot;Anything Linux&quot;","block_context":{"text":"Anything Linux","link":"http:\/\/bangla.sitestree.com\/?cat=1976"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9585,"url":"http:\/\/bangla.sitestree.com\/?p=9585","url_meta":{"origin":78688,"position":3},"title":"\u0987\u0989\u09a8\u09bf\u0995\u09cd\u09b8\u0983 \u09ab\u09be\u0987\u09b2 \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8 \u0993 \u098f\u0995\u09cd\u09b8\u09c7\u09b8 \u09ae\u09cb\u09a1 (Unix &#8211; File Permission \/ Access Modes)","author":"Author-Check- Article-or-Video","date":"June 29, 2015","format":false,"excerpt":"\u09b0\u09bf\u09a6\u0993\u09df\u09be\u09a8 \u09ac\u09bf\u09a8 \u09b6\u09be\u09ae\u09c0\u09ae \u00a0 \u09ab\u09be\u0987\u09b2 \u0993\u09a8\u09be\u09b0\u09b6\u09bf\u09aa \u0987\u0989\u09a8\u09bf\u0995\u09cd\u09b8\u09c7\u09b0 \u098f\u0995\u099f\u09bf \u0997\u09c1\u09b0\u09c1\u09a4\u09cd\u09ac\u09aa\u09c2\u09b0\u09cd\u09a3 \u0989\u09aa\u09be\u09a6\u09be\u09a8 \u09af\u09be \u09ab\u09be\u0987\u09b2 \u09b7\u09cd\u099f\u09cb\u09b0\u09c7\u09b0 \u09a8\u09bf\u09b0\u09be\u09aa\u09a6 \u0989\u09aa\u09be\u09df \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7 \u09aa\u09cd\u09b0\u09df\u09cb\u099c\u09a8\u0964 \u0987\u0989\u09a8\u09bf\u0995\u09cd\u09b8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09a4\u09cd\u09af\u09c7\u0995\u099f\u09bf \u09ab\u09be\u0987\u09b2\u09c7 \u09af\u09c7 \u098f\u099f\u09cd\u09b0\u09bf\u09ac\u09bf\u0989\u099f\u0997\u09c1\u09b2\u09cb \u09a5\u09be\u0995\u09c7 \u09b8\u09c7\u0997\u09c1\u09b2\u09cb \u09b9\u09b2, \u0993\u09a8\u09be\u09b0\u09c7\u09b0 \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8, \u0997\u09cd\u09b0\u09c1\u09aa \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8, \u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8 \u00a0 \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8 \u0987\u09a8\u09a1\u09bf\u0995\u09c7\u099f\u09b0 ls -l \u0995\u09ae\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7 \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8 \u09b8\u0982\u0995\u09cd\u09b0\u09be\u09a8\u09cd\u09a4 \u0985\u09a8\u09c7\u0995 \u09a4\u09a5\u09cd\u09af \u09a6\u09c7\u0996\u09be \u09af\u09be\u09df, $ls -l \/home\/amrood -rwxr-xr-- 1\u2026","rel":"","context":"In &quot;\u09b2\u09bf\u09a8\u09be\u0995\u09cd\u09b8 \u098f\u09ac\u0982 \u0989\u09a8\u09bf\u0995\u09cd\u09b8 \u0964 Linux and Unix&quot;","block_context":{"text":"\u09b2\u09bf\u09a8\u09be\u0995\u09cd\u09b8 \u098f\u09ac\u0982 \u0989\u09a8\u09bf\u0995\u09cd\u09b8 \u0964 Linux and Unix","link":"http:\/\/bangla.sitestree.com\/?cat=1231"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":78686,"url":"http:\/\/bangla.sitestree.com\/?p=78686","url_meta":{"origin":78688,"position":4},"title":"Why? Max permissions on a file: 666? what if I give 777?","author":"Sayed","date":"May 30, 2026","format":false,"excerpt":"When people say: Max permissions on a file: 666 they usually mean default maximum permissions when a new regular file is created, not the maximum you can manually set. 1. Default maximum for new files: 666 For a new regular file, Linux normally starts from: 666 = rw-rw-rw- That means:\u2026","rel":"","context":"In &quot;Anything Linux&quot;","block_context":{"text":"Anything Linux","link":"http:\/\/bangla.sitestree.com\/?cat=1976"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":78682,"url":"http:\/\/bangla.sitestree.com\/?p=78682","url_meta":{"origin":78688,"position":5},"title":"Linux: setfacl remove a user completely","author":"Sayed","date":"May 30, 2026","format":false,"excerpt":"To remove a specific user completely from ACL permissions, use setfacl -x. Remove a user ACL from a file setfacl -x u:username filename Example: setfacl -x u:john report.txt Check: getfacl report.txt Remove a user ACL from a directory setfacl -x u:username directoryname Example: setfacl -x u:john projectdir If the directory\u2026","rel":"","context":"In &quot;Anything Linux&quot;","block_context":{"text":"Anything Linux","link":"http:\/\/bangla.sitestree.com\/?cat=1976"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/78688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=78688"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/78688\/revisions"}],"predecessor-version":[{"id":78689,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/78688\/revisions\/78689"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=78688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=78688"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=78688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}