Why doesn't mkfifo with a mode of 1755 grant read permissions and sticky bit to the user? The...

Deal with toxic manager when you can't quit

How to notate time signature switching consistently every measure

If a sorcerer casts the Banishment spell on a PC while in Avernus, does the PC return to their home plane?

A word that means fill it to the required quantity

How to obtain a position of last non-zero element

What to do when moving next to a bird sanctuary with a loosely-domesticated cat?

Why doesn't UInt have a toDouble()?

Flight paths in orbit around Ceres?

Is it possible for absolutely everyone to attain enlightenment?

Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Cooking pasta in a water boiler

How do PCB vias affect signal quality?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

If I score a critical hit on an 18 or higher, what are my chances of getting a critical hit if I roll 3d20?

Why can't devices on different VLANs, but on the same subnet, communicate?

Why don't hard Brexiteers insist on a hard border to prevent illegal immigration after Brexit?

How can I add encounters in the Lost Mine of Phandelver campaign without giving PCs too much XP?

"as much details as you can remember"

Button changing its text & action. Good or terrible?

Mathematics of imaging the black hole

Slides for 30 min~1 hr Skype tenure track application interview

What is the most efficient way to store a numeric range?

How to charge AirPods to keep battery healthy?



Why doesn't mkfifo with a mode of 1755 grant read permissions and sticky bit to the user?



The 2019 Stack Overflow Developer Survey Results Are InIs there a way to execute a native binary from a pipe?Execute vs Read bit. How do directory permissions in Linux work?vsftpd virtual user read permissionsNot allowed to read a file with correct group permissions? ACL?Give full permissions to the owner and only one other userGiven the permissions, owner and group of a file, what's the algorithm that determines whether a given user can read/write/execute a file?File created with root and given other read permissions not even visible by userWhy can't I list a directory with read permissions?How do file permissions work for the “root” user?Mounting volume/partition with permissions for userPermissions Based on Lowest Level





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







6















I'm creating a server and client situation where i want to create a pipe so they can communicate.



I created the pipe in the server code with
mkfifo("fifo",1755);:




  • 1 for only user that created and root to be able to delete it or rename it,

  • 7 for give read, write and exec to user, and

  • 5 for both group and other to only give them read and exec.


The problem is that later in the server code I open the fifo to read from it open("fifo",O_RDONLY); but when i execute it, it shows me an perror that denies me acess to the fifo.



I went to see the permissions of the pipe fifo and it says
p-wx--s--t so:





  • p stands for pipe,


  • - means the user has no read. I don't know how when I gave it with the 7,


  • s group executes has user. I don't how if i gave 1 so supposedly it should give to user and others the ability to only read and execute and others have t that was expected.


Do I have a misunderstanding of the permissions?










share|improve this question









New contributor




Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.



























    6















    I'm creating a server and client situation where i want to create a pipe so they can communicate.



    I created the pipe in the server code with
    mkfifo("fifo",1755);:




    • 1 for only user that created and root to be able to delete it or rename it,

    • 7 for give read, write and exec to user, and

    • 5 for both group and other to only give them read and exec.


    The problem is that later in the server code I open the fifo to read from it open("fifo",O_RDONLY); but when i execute it, it shows me an perror that denies me acess to the fifo.



    I went to see the permissions of the pipe fifo and it says
    p-wx--s--t so:





    • p stands for pipe,


    • - means the user has no read. I don't know how when I gave it with the 7,


    • s group executes has user. I don't how if i gave 1 so supposedly it should give to user and others the ability to only read and execute and others have t that was expected.


    Do I have a misunderstanding of the permissions?










    share|improve this question









    New contributor




    Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      6












      6








      6








      I'm creating a server and client situation where i want to create a pipe so they can communicate.



      I created the pipe in the server code with
      mkfifo("fifo",1755);:




      • 1 for only user that created and root to be able to delete it or rename it,

      • 7 for give read, write and exec to user, and

      • 5 for both group and other to only give them read and exec.


      The problem is that later in the server code I open the fifo to read from it open("fifo",O_RDONLY); but when i execute it, it shows me an perror that denies me acess to the fifo.



      I went to see the permissions of the pipe fifo and it says
      p-wx--s--t so:





      • p stands for pipe,


      • - means the user has no read. I don't know how when I gave it with the 7,


      • s group executes has user. I don't how if i gave 1 so supposedly it should give to user and others the ability to only read and execute and others have t that was expected.


      Do I have a misunderstanding of the permissions?










      share|improve this question









      New contributor




      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I'm creating a server and client situation where i want to create a pipe so they can communicate.



      I created the pipe in the server code with
      mkfifo("fifo",1755);:




      • 1 for only user that created and root to be able to delete it or rename it,

      • 7 for give read, write and exec to user, and

      • 5 for both group and other to only give them read and exec.


      The problem is that later in the server code I open the fifo to read from it open("fifo",O_RDONLY); but when i execute it, it shows me an perror that denies me acess to the fifo.



      I went to see the permissions of the pipe fifo and it says
      p-wx--s--t so:





      • p stands for pipe,


      • - means the user has no read. I don't know how when I gave it with the 7,


      • s group executes has user. I don't how if i gave 1 so supposedly it should give to user and others the ability to only read and execute and others have t that was expected.


      Do I have a misunderstanding of the permissions?







      permissions c mkfifo






      share|improve this question









      New contributor




      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 6 hours ago









      mosvy

      9,67711036




      9,67711036






      New contributor




      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 13 hours ago









      Joao ParenteJoao Parente

      311




      311




      New contributor




      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Joao Parente is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes


















          11














          You cannot simply exec a binary from a pipe: Is there a way to execute a native binary from a pipe?. Also I don't think the sticky bit on executables is worth anything on modern systems.




          I created the pipe in the server code with mkfifo("fifo",1755);



          I went to see the permissions of the pipe fifo and it says p-wx--s--t so:




          Your error is to have written the 1755 permission without the leading 0, which means that 1755 has been treated as a decimal instead of octal (1755 & ~022 = 03311 = p-wx--s--t; where 022 is your umask)






          share|improve this answer


























          • So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

            – Joao Parente
            13 hours ago








          • 3





            The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

            – mosvy
            13 hours ago











          • thanks very much :P

            – Joao Parente
            13 hours ago











          • i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

            – Joao Parente
            6 hours ago











          • Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

            – mosvy
            6 hours ago












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "106"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Joao Parente is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f511874%2fwhy-doesnt-mkfifo-with-a-mode-of-1755-grant-read-permissions-and-sticky-bit-to%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          11














          You cannot simply exec a binary from a pipe: Is there a way to execute a native binary from a pipe?. Also I don't think the sticky bit on executables is worth anything on modern systems.




          I created the pipe in the server code with mkfifo("fifo",1755);



          I went to see the permissions of the pipe fifo and it says p-wx--s--t so:




          Your error is to have written the 1755 permission without the leading 0, which means that 1755 has been treated as a decimal instead of octal (1755 & ~022 = 03311 = p-wx--s--t; where 022 is your umask)






          share|improve this answer


























          • So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

            – Joao Parente
            13 hours ago








          • 3





            The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

            – mosvy
            13 hours ago











          • thanks very much :P

            – Joao Parente
            13 hours ago











          • i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

            – Joao Parente
            6 hours ago











          • Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

            – mosvy
            6 hours ago
















          11














          You cannot simply exec a binary from a pipe: Is there a way to execute a native binary from a pipe?. Also I don't think the sticky bit on executables is worth anything on modern systems.




          I created the pipe in the server code with mkfifo("fifo",1755);



          I went to see the permissions of the pipe fifo and it says p-wx--s--t so:




          Your error is to have written the 1755 permission without the leading 0, which means that 1755 has been treated as a decimal instead of octal (1755 & ~022 = 03311 = p-wx--s--t; where 022 is your umask)






          share|improve this answer


























          • So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

            – Joao Parente
            13 hours ago








          • 3





            The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

            – mosvy
            13 hours ago











          • thanks very much :P

            – Joao Parente
            13 hours ago











          • i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

            – Joao Parente
            6 hours ago











          • Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

            – mosvy
            6 hours ago














          11












          11








          11







          You cannot simply exec a binary from a pipe: Is there a way to execute a native binary from a pipe?. Also I don't think the sticky bit on executables is worth anything on modern systems.




          I created the pipe in the server code with mkfifo("fifo",1755);



          I went to see the permissions of the pipe fifo and it says p-wx--s--t so:




          Your error is to have written the 1755 permission without the leading 0, which means that 1755 has been treated as a decimal instead of octal (1755 & ~022 = 03311 = p-wx--s--t; where 022 is your umask)






          share|improve this answer















          You cannot simply exec a binary from a pipe: Is there a way to execute a native binary from a pipe?. Also I don't think the sticky bit on executables is worth anything on modern systems.




          I created the pipe in the server code with mkfifo("fifo",1755);



          I went to see the permissions of the pipe fifo and it says p-wx--s--t so:




          Your error is to have written the 1755 permission without the leading 0, which means that 1755 has been treated as a decimal instead of octal (1755 & ~022 = 03311 = p-wx--s--t; where 022 is your umask)







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 13 hours ago

























          answered 13 hours ago









          mosvymosvy

          9,67711036




          9,67711036













          • So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

            – Joao Parente
            13 hours ago








          • 3





            The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

            – mosvy
            13 hours ago











          • thanks very much :P

            – Joao Parente
            13 hours ago











          • i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

            – Joao Parente
            6 hours ago











          • Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

            – mosvy
            6 hours ago



















          • So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

            – Joao Parente
            13 hours ago








          • 3





            The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

            – mosvy
            13 hours ago











          • thanks very much :P

            – Joao Parente
            13 hours ago











          • i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

            – Joao Parente
            6 hours ago











          • Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

            – mosvy
            6 hours ago

















          So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

          – Joao Parente
          13 hours ago







          So a better solution would be create a dir and chmod 1755 the dir then create the pipe in that dir with ``` mkfifo ("fifo",755); ``` ?

          – Joao Parente
          13 hours ago






          3




          3





          The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

          – mosvy
          13 hours ago





          The sticky bit has different semantics for files and directories: for directories it prevents users from removing or renaming files they don't own; for regular files it doesn't mean much nowadays. Read the chmod(2) manpage for all the details. Also, mkfifo("fifo", 0755) with the leading 0 ;-).

          – mosvy
          13 hours ago













          thanks very much :P

          – Joao Parente
          13 hours ago





          thanks very much :P

          – Joao Parente
          13 hours ago













          i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

          – Joao Parente
          6 hours ago





          i tried mkfifo("fifo",0777); but i only got prwxr-xr-xbut if i do chmod 0777 fifo after i created fifo i get prwxrwxrwxany idea why it doesnt work when i create it

          – Joao Parente
          6 hours ago













          Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

          – mosvy
          6 hours ago





          Because of the umask -- the umask which is 022 will mask out the write permissions from group (020) and other (002) anytime a file is created with open(2), mkfifo(2), etc. Read the umask(2) manpage. The umask doesn't affect the chmod syscall or command.

          – mosvy
          6 hours ago










          Joao Parente is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Joao Parente is a new contributor. Be nice, and check out our Code of Conduct.













          Joao Parente is a new contributor. Be nice, and check out our Code of Conduct.












          Joao Parente is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f511874%2fwhy-doesnt-mkfifo-with-a-mode-of-1755-grant-read-permissions-and-sticky-bit-to%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Hudson River Historic District Contents Geography History The district today Aesthetics Cultural...

          The number designs the writing. Feandra Aversely Definition: The act of ingrafting a sprig or shoot of one...

          Ayherre Geografie Demografie Externe links Navigatiemenu43° 23′ NB, 1° 15′ WL43° 23′ NB, 1°...