github.com/apptainer/singularity@v3.1.1+incompatible/cmd/internal/cli/capability_drop_linux.go (about) 1 // Copyright (c) 2018-2019, Sylabs Inc. All rights reserved. 2 // This software is licensed under a 3-clause BSD license. Please consult the 3 // LICENSE.md file distributed with the sources of this project regarding your 4 // rights to use or distribute this software. 5 6 package cli 7 8 import ( 9 "github.com/spf13/cobra" 10 "github.com/sylabs/singularity/docs" 11 "github.com/sylabs/singularity/internal/app/singularity" 12 "github.com/sylabs/singularity/internal/pkg/buildcfg" 13 "github.com/sylabs/singularity/internal/pkg/sylog" 14 ) 15 16 func init() { 17 18 // -u|--user 19 CapabilityDropCmd.Flags().StringVarP(&CapUser, "user", "u", "", "remove capabilities from a user") 20 CapabilityDropCmd.Flags().SetAnnotation("user", "argtag", []string{"<user>"}) 21 CapabilityDropCmd.Flags().SetAnnotation("user", "envkey", []string{"USER"}) 22 23 // -g|--group 24 CapabilityDropCmd.Flags().StringVarP(&CapGroup, "group", "g", "", "remove capabilities from a group") 25 CapabilityDropCmd.Flags().SetAnnotation("group", "argtag", []string{"<group>"}) 26 CapabilityDropCmd.Flags().SetAnnotation("group", "envkey", []string{"GROUP"}) 27 28 CapabilityDropCmd.Flags().SetInterspersed(false) 29 } 30 31 // CapabilityDropCmd singularity capability drop 32 var CapabilityDropCmd = &cobra.Command{ 33 Args: cobra.ExactArgs(1), 34 DisableFlagsInUseLine: true, 35 Run: func(cmd *cobra.Command, args []string) { 36 c := singularity.CapManageConfig{ 37 Caps: args[0], 38 User: CapUser, 39 Group: CapGroup, 40 } 41 42 if err := singularity.CapabilityDrop(buildcfg.CAPABILITY_FILE, c); err != nil { 43 sylog.Fatalf("Unable to drop capabilities: %s", err) 44 } 45 }, 46 47 Use: docs.CapabilityDropUse, 48 Short: docs.CapabilityDropShort, 49 Long: docs.CapabilityDropLong, 50 Example: docs.CapabilityDropExample, 51 }