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?

Do I have to make someone coauthor if he/she solves a problem in StackExchange, asked by myself, which is later used in my paper?

What are the differences between credential stuffing and password spraying?

Comment rendre "naysayers" ?

What happens to matryoshka Mordenkainen's Magnificent Mansions?

How to 'Let Go' in Meditation?

Missed the connecting flight, separate tickets on same airline - who is responsible?

I caught several of my students plagiarizing. Could it be my fault as a teacher?

What are the spoon bit of a spoon and fork bit of a fork called?

How to reply this mail from potential PhD professor?

Why is C# in the D Major Scale?

Answer "Justification for travel support" in conference registration form

Short story with physics professor who "brings back the dead" (Asimov or Bradbury?)

What is a "listed natural gas appliance"?

Are we obligated to aspire to be Talmidei Chachamim?

What was the state of the German rail system in 1944?

Sub query result is 0

Type-check an expression

My ID is expired, can I fly to the Bahamas with my passport?

Besides the up and down quark, what other quarks are present in daily matter around us?

Is it cheaper to drop cargo than to land it?

If Earth is tilted, why is Polaris always above the same spot?

Accidentally deleted the "/usr/share" folder

Would a 1/1 token with persist dying trigger on death effects a second time?

Upside-Down Pyramid Addition...REVERSED!



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









New contributor




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















  • 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









New contributor




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















  • 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









New contributor




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












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









New contributor




James 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




James 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 Apr 27 at 18:44









muru

38.2k591166




38.2k591166






New contributor




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









asked Apr 27 at 16:16









JamesJames

263




263




New contributor




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





New contributor





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






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







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



      );






      James 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%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 2 days ago

























          answered Apr 27 at 17:09









          mosvymosvy

          11k11340




          11k11340























              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.7k52663




                  12.7k52663




















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









                      draft saved

                      draft discarded


















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












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











                      James 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%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

                      Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

                      Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

                      Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form