What does the “ep” capability mean?Unable to set capability CAP_SETFCAP by userWhat does this iptable rule mean?Granting service specific capabilitiesWhat does :source % mean?Does every syscall require at most 1 capability on Linux?Better use ACL or Capability to let users start a service?Does a process that have the root user always have all of the capabilities available in Linux?Does macOS and Solaris have “capabilities”?Difference between file capability and process capabilityWhat does the '.' (dot) mean?

How do I, as a DM, handle a party that decides to set up an ambush in a dungeon?

Can a player choose to add detail and flavor to their character's spells and abilities?

How can I finally understand the confusing modal verb "мочь"?

What does のそ mean on this picture?

How important are good looking people in a novel/story?

Gerrymandering Puzzle - Rig the Election

Playing Doublets with the Primes

What would happen if I combined this polymer and this metal (assuming I can)

Old story about a creature laying pyramid shaped eggs on Mars

What is more safe for browsing the web: PC or smartphone?

Efficient deletion of specific list entries

Why is the blank symbol not considered part of the input alphabet of a Turing machine?

What is the thing used to help pouring liquids called?

TIP120 Transistor + Solenoid Failing Randomly

What's the 2-minute timer on mobile Deutsche Bahn tickets?

A 2-connected graph contains a path passing through all the odd degree vertices

Has the United States ever had a non-Christian President?

Transistor gain, what if there is not enough current?

How to use awk to extract data from a file based on the content of another file?

How is trade in services conducted under the WTO in the absence of the Doha conclusion?

Does Thanos's ship land in the middle of the battlefield in "Avengers: Endgame"?

Two denim hijabs

Why doesn't a particle exert force on itself?

In "Avengers: Endgame", what does this name refer to?



What does the “ep” capability mean?


Unable to set capability CAP_SETFCAP by userWhat does this iptable rule mean?Granting service specific capabilitiesWhat does :source % mean?Does every syscall require at most 1 capability on Linux?Better use ACL or Capability to let users start a service?Does a process that have the root user always have all of the capabilities available in Linux?Does macOS and Solaris have “capabilities”?Difference between file capability and process capabilityWhat does the '.' (dot) mean?






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








4















root@macine:~# getcap ./some_bin
./some_bin =ep


What does "ep" mean? What are the capabilities of this binary?










share|improve this question



















  • 4





    capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

    – mosvy
    Apr 27 at 16:36











  • vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

    – Jesse_b
    Apr 27 at 16:43











  • @Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

    – mosvy
    Apr 27 at 20:41












  • @mosvy: Dew hwat?

    – Jesse_b
    Apr 27 at 20:58

















4















root@macine:~# getcap ./some_bin
./some_bin =ep


What does "ep" mean? What are the capabilities of this binary?










share|improve this question



















  • 4





    capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

    – mosvy
    Apr 27 at 16:36











  • vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

    – Jesse_b
    Apr 27 at 16:43











  • @Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

    – mosvy
    Apr 27 at 20:41












  • @mosvy: Dew hwat?

    – Jesse_b
    Apr 27 at 20:58













4












4








4








root@macine:~# getcap ./some_bin
./some_bin =ep


What does "ep" mean? What are the capabilities of this binary?










share|improve this question
















root@macine:~# getcap ./some_bin
./some_bin =ep


What does "ep" mean? What are the capabilities of this binary?







linux capabilities






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 27 at 18:44









muru

38.2k591166




38.2k591166










asked Apr 27 at 16:16









JamesJames

263




263







  • 4





    capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

    – mosvy
    Apr 27 at 16:36











  • vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

    – Jesse_b
    Apr 27 at 16:43











  • @Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

    – mosvy
    Apr 27 at 20:41












  • @mosvy: Dew hwat?

    – Jesse_b
    Apr 27 at 20:58












  • 4





    capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

    – mosvy
    Apr 27 at 16:36











  • vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

    – Jesse_b
    Apr 27 at 16:43











  • @Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

    – mosvy
    Apr 27 at 20:41












  • @mosvy: Dew hwat?

    – Jesse_b
    Apr 27 at 20:58







4




4





capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

– mosvy
Apr 27 at 16:36





capabilities(7) have nothing to do with selinux. That file has all possible capabilities set.

– mosvy
Apr 27 at 16:36













vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

– Jesse_b
Apr 27 at 16:43





vulp3cula.gitbook.io/hackers-grimoire/post-exploitation/…

– Jesse_b
Apr 27 at 16:43













@Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

– mosvy
Apr 27 at 20:41






@Jesse_b that's wrong, there's no "special case" of empty capabilities. That guy was simply confused by the syntax. setcap =ep file will turn all capabilities on, setcap = file will turn them all off (make them empty) and setcap -r file will remove them completely.

– mosvy
Apr 27 at 20:41














@mosvy: Dew hwat?

– Jesse_b
Apr 27 at 20:58





@mosvy: Dew hwat?

– Jesse_b
Apr 27 at 20:58










2 Answers
2






active

oldest

votes


















8















# getcap ./some_bin
./some_bin =ep



That binary has ALL the capabilites permitted (p) and effective (e) from the start.



In the textual representation of capabilities, a leading = is equivalent to all=.
From the cap_to_text(3) manpage:




In the case that the leading operator is =, and no list of capabilities is provided, the action-list is assumed to refer to all capabilities. For example, the following three clauses are equivalent to each
other (and indicate a completely empty capability set): all=; =;
cap_chown,<every-other-capability>=.




Such a binary can do whatever it pleases, limited only by the capability bounding set, which on a typical desktop system includes everything (otherwise setuid binaries like su wouldn't work as expected).



Notice that this is only a "gotcha" of the textual representation used by libpcap: in the security.capability extended attribute of the file for which getcap will print /file/path =ep, all the meaningful bits are effectively on; for an empty security.capability, /file/path = (with the = not followed by anything) will be printed instead.




If someone is still not convinced about all that, here is a small experiment:



# cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted
# setcap =ep /tmp/ping
# su user -c '/tmp/ping localhost' # will work because of cap_net_raw
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
^C
# setcap = /tmp/ping
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted





share|improve this answer
































    4














    The capabilities are put in the permitted set (p), and all permitted capabilities are copied into the effective set (e). There does not seem to be any capabilities in your example (where did you get it from?).



    The e is used for legacy programs (possibly most programs at the current time), that is programs that don't know about capabilities, so can not them-selves copy capabilities from permitted to effective.






    share|improve this answer























      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
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f515881%2fwhat-does-the-ep-capability-mean%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      8















      # getcap ./some_bin
      ./some_bin =ep



      That binary has ALL the capabilites permitted (p) and effective (e) from the start.



      In the textual representation of capabilities, a leading = is equivalent to all=.
      From the cap_to_text(3) manpage:




      In the case that the leading operator is =, and no list of capabilities is provided, the action-list is assumed to refer to all capabilities. For example, the following three clauses are equivalent to each
      other (and indicate a completely empty capability set): all=; =;
      cap_chown,<every-other-capability>=.




      Such a binary can do whatever it pleases, limited only by the capability bounding set, which on a typical desktop system includes everything (otherwise setuid binaries like su wouldn't work as expected).



      Notice that this is only a "gotcha" of the textual representation used by libpcap: in the security.capability extended attribute of the file for which getcap will print /file/path =ep, all the meaningful bits are effectively on; for an empty security.capability, /file/path = (with the = not followed by anything) will be printed instead.




      If someone is still not convinced about all that, here is a small experiment:



      # cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
      # su user -c '/tmp/ping localhost'
      ping: socket: Operation not permitted
      # setcap =ep /tmp/ping
      # su user -c '/tmp/ping localhost' # will work because of cap_net_raw
      PING localhost(localhost (::1)) 56 data bytes
      64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
      ^C
      # setcap = /tmp/ping
      # su user -c '/tmp/ping localhost'
      ping: socket: Operation not permitted





      share|improve this answer





























        8















        # getcap ./some_bin
        ./some_bin =ep



        That binary has ALL the capabilites permitted (p) and effective (e) from the start.



        In the textual representation of capabilities, a leading = is equivalent to all=.
        From the cap_to_text(3) manpage:




        In the case that the leading operator is =, and no list of capabilities is provided, the action-list is assumed to refer to all capabilities. For example, the following three clauses are equivalent to each
        other (and indicate a completely empty capability set): all=; =;
        cap_chown,<every-other-capability>=.




        Such a binary can do whatever it pleases, limited only by the capability bounding set, which on a typical desktop system includes everything (otherwise setuid binaries like su wouldn't work as expected).



        Notice that this is only a "gotcha" of the textual representation used by libpcap: in the security.capability extended attribute of the file for which getcap will print /file/path =ep, all the meaningful bits are effectively on; for an empty security.capability, /file/path = (with the = not followed by anything) will be printed instead.




        If someone is still not convinced about all that, here is a small experiment:



        # cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
        # su user -c '/tmp/ping localhost'
        ping: socket: Operation not permitted
        # setcap =ep /tmp/ping
        # su user -c '/tmp/ping localhost' # will work because of cap_net_raw
        PING localhost(localhost (::1)) 56 data bytes
        64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
        ^C
        # setcap = /tmp/ping
        # su user -c '/tmp/ping localhost'
        ping: socket: Operation not permitted





        share|improve this answer



























          8












          8








          8








          # getcap ./some_bin
          ./some_bin =ep



          That binary has ALL the capabilites permitted (p) and effective (e) from the start.



          In the textual representation of capabilities, a leading = is equivalent to all=.
          From the cap_to_text(3) manpage:




          In the case that the leading operator is =, and no list of capabilities is provided, the action-list is assumed to refer to all capabilities. For example, the following three clauses are equivalent to each
          other (and indicate a completely empty capability set): all=; =;
          cap_chown,<every-other-capability>=.




          Such a binary can do whatever it pleases, limited only by the capability bounding set, which on a typical desktop system includes everything (otherwise setuid binaries like su wouldn't work as expected).



          Notice that this is only a "gotcha" of the textual representation used by libpcap: in the security.capability extended attribute of the file for which getcap will print /file/path =ep, all the meaningful bits are effectively on; for an empty security.capability, /file/path = (with the = not followed by anything) will be printed instead.




          If someone is still not convinced about all that, here is a small experiment:



          # cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
          # su user -c '/tmp/ping localhost'
          ping: socket: Operation not permitted
          # setcap =ep /tmp/ping
          # su user -c '/tmp/ping localhost' # will work because of cap_net_raw
          PING localhost(localhost (::1)) 56 data bytes
          64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
          ^C
          # setcap = /tmp/ping
          # su user -c '/tmp/ping localhost'
          ping: socket: Operation not permitted





          share|improve this answer
















          # getcap ./some_bin
          ./some_bin =ep



          That binary has ALL the capabilites permitted (p) and effective (e) from the start.



          In the textual representation of capabilities, a leading = is equivalent to all=.
          From the cap_to_text(3) manpage:




          In the case that the leading operator is =, and no list of capabilities is provided, the action-list is assumed to refer to all capabilities. For example, the following three clauses are equivalent to each
          other (and indicate a completely empty capability set): all=; =;
          cap_chown,<every-other-capability>=.




          Such a binary can do whatever it pleases, limited only by the capability bounding set, which on a typical desktop system includes everything (otherwise setuid binaries like su wouldn't work as expected).



          Notice that this is only a "gotcha" of the textual representation used by libpcap: in the security.capability extended attribute of the file for which getcap will print /file/path =ep, all the meaningful bits are effectively on; for an empty security.capability, /file/path = (with the = not followed by anything) will be printed instead.




          If someone is still not convinced about all that, here is a small experiment:



          # cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
          # su user -c '/tmp/ping localhost'
          ping: socket: Operation not permitted
          # setcap =ep /tmp/ping
          # su user -c '/tmp/ping localhost' # will work because of cap_net_raw
          PING localhost(localhost (::1)) 56 data bytes
          64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
          ^C
          # setcap = /tmp/ping
          # su user -c '/tmp/ping localhost'
          ping: socket: Operation not permitted






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Apr 28 at 12:21

























          answered Apr 27 at 17:09









          mosvymosvy

          11.2k11340




          11.2k11340























              4














              The capabilities are put in the permitted set (p), and all permitted capabilities are copied into the effective set (e). There does not seem to be any capabilities in your example (where did you get it from?).



              The e is used for legacy programs (possibly most programs at the current time), that is programs that don't know about capabilities, so can not them-selves copy capabilities from permitted to effective.






              share|improve this answer



























                4














                The capabilities are put in the permitted set (p), and all permitted capabilities are copied into the effective set (e). There does not seem to be any capabilities in your example (where did you get it from?).



                The e is used for legacy programs (possibly most programs at the current time), that is programs that don't know about capabilities, so can not them-selves copy capabilities from permitted to effective.






                share|improve this answer

























                  4












                  4








                  4







                  The capabilities are put in the permitted set (p), and all permitted capabilities are copied into the effective set (e). There does not seem to be any capabilities in your example (where did you get it from?).



                  The e is used for legacy programs (possibly most programs at the current time), that is programs that don't know about capabilities, so can not them-selves copy capabilities from permitted to effective.






                  share|improve this answer













                  The capabilities are put in the permitted set (p), and all permitted capabilities are copied into the effective set (e). There does not seem to be any capabilities in your example (where did you get it from?).



                  The e is used for legacy programs (possibly most programs at the current time), that is programs that don't know about capabilities, so can not them-selves copy capabilities from permitted to effective.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 27 at 16:48









                  ctrl-alt-delorctrl-alt-delor

                  12.9k52663




                  12.9k52663



























                      draft saved

                      draft discarded
















































                      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%2f515881%2fwhat-does-the-ep-capability-mean%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

                      How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

                      What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

                      Esgonzo ibérico Índice Descrición Distribución Hábitat Ameazas Notas Véxase tamén "Acerca dos nomes dos anfibios e réptiles galegos""Chalcides bedriagai"Chalcides bedriagai en Carrascal, L. M. Salvador, A. (Eds). Enciclopedia virtual de los vertebrados españoles. Museo Nacional de Ciencias Naturales, Madrid. España.Fotos