Changeset View
Changeset View
Standalone View
Standalone View
lib/libc/sys/chflags.2
Show All 22 Lines | |||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
.\" SUCH DAMAGE. | .\" SUCH DAMAGE. | ||||
.\" | .\" | ||||
.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 | .\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd September 23, 2020 | .Dd February 23, 2021 | ||||
.Dt CHFLAGS 2 | .Dt CHFLAGS 2 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm chflags , | .Nm chflags , | ||||
.Nm lchflags , | .Nm lchflags , | ||||
.Nm fchflags , | .Nm fchflags , | ||||
.Nm chflagsat | .Nm chflagsat | ||||
.Nd set file flags | .Nd set file flags | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
are constructed by a bitwise-inclusive OR of flags from the following list, | are constructed by a bitwise-inclusive OR of flags from the following list, | ||||
defined in | defined in | ||||
.In fcntl.h : | .In fcntl.h : | ||||
.Bl -tag -width indent | .Bl -tag -width indent | ||||
.It Dv AT_SYMLINK_NOFOLLOW | .It Dv AT_SYMLINK_NOFOLLOW | ||||
If | If | ||||
.Fa path | .Fa path | ||||
names a symbolic link, then the flags of the symbolic link are changed. | names a symbolic link, then the flags of the symbolic link are changed. | ||||
.It Dv AT_BENEATH | |||||
Only allow to change flags for a file which is beneath of | |||||
the topping directory. | |||||
See the description of the | |||||
.Dv O_BENEATH | |||||
flag in the | |||||
.Xr open 2 | |||||
manual page. | |||||
.It Dv AT_RESOLVE_BENEATH | .It Dv AT_RESOLVE_BENEATH | ||||
Only walks paths below the topping directory. | Only walks paths below the directory specified by the | ||||
.Ar fd | |||||
descriptor. | |||||
See the description of the | See the description of the | ||||
.Dv O_RESOLVE_BENEATH | .Dv O_RESOLVE_BENEATH | ||||
flag in the | flag in the | ||||
.Xr open 2 | .Xr open 2 | ||||
manual page. | manual page. | ||||
.El | .El | ||||
.Pp | .Pp | ||||
If | If | ||||
▲ Show 20 Lines • Show All 207 Lines • ▼ Show 20 Lines | |||||
does not support all of the flags set in | does not support all of the flags set in | ||||
.Fa flags . | .Fa flags . | ||||
.It Bq Er ENOTCAPABLE | .It Bq Er ENOTCAPABLE | ||||
.Fa path | .Fa path | ||||
is an absolute path, | is an absolute path, | ||||
or contained a ".." component leading to a | or contained a ".." component leading to a | ||||
directory outside of the directory hierarchy specified by | directory outside of the directory hierarchy specified by | ||||
.Fa fd , | .Fa fd , | ||||
and the process is in capability mode. | and the process is in capability mode or the | ||||
.It Bq Er ENOTCAPABLE | .Dv AT_RESOLVE_BENEATH | ||||
The | flag was specified. | ||||
.Dv AT_BENEATH | |||||
flag was provided to | |||||
.Fn chflagsat , | |||||
and the absolute | |||||
.Fa path | |||||
does not have its tail fully contained under the topping directory, | |||||
or the relative | |||||
.Fa path | |||||
escapes it. | |||||
markj: Doesn't this still apply to AT_RESOLVE_BENEATH? At least open.2 still states that ENOTCAPABLE… | |||||
.El | .El | ||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr chflags 1 , | .Xr chflags 1 , | ||||
.Xr fflagstostr 3 , | .Xr fflagstostr 3 , | ||||
.Xr strtofflags 3 , | .Xr strtofflags 3 , | ||||
.Xr init 8 , | .Xr init 8 , | ||||
.Xr mount_unionfs 8 | .Xr mount_unionfs 8 | ||||
.Sh HISTORY | .Sh HISTORY | ||||
Show All 14 Lines |
Doesn't this still apply to AT_RESOLVE_BENEATH? At least open.2 still states that ENOTCAPABLE is returned in this scenario.