内に含ま
その他のドキュメント
サポート リソース
| PDF 文書ファイルをダウンロードする (1911 KB)
setflabel(3TSOL)
Name
| Synopsis
| Description
| Return Values
| Errors
| Attributes
| See Also
| Notes
Name
setflabel– move file to zone with corresponding sensitivity label
Synopsis
cc [flag...] file... -ltsol [library...]
#include <tsol/label.h>
int setflabel(const char *path, const m_label_t *label_p);
Description
The file that is named by path is relabeled by moving it to a new pathname relative to the root directory of the zone corresponding to label_p. If the source and destination file systems are loopback mounted from the same underlying file system,
the file is renamed. Otherwise, the file is copied and removed from the source directory.
The setflabel() function enforces the following policy checks:
-
If the sensitivity label of label_p equals the existing sensitivity label, then the file is not moved.
-
If the corresponding directory does not exist in the destination zone, or if the directory exists, but has a different label than label_p, the file is not moved. Also, if the file already exists in the destination directory, the file is not moved.
-
If the sensitivity label of the existing file is not equal to the calling process label and the caller is not in the global zone, then the file is not moved. If the caller is in the global zone, the existing file label must be in a labeled zone (not ADMIN_LOW or ADMIN_HIGH).
-
If the calling process does not have write access to both the source and destination directories, then the calling process must have PRIV_FILE_DAC_WRITE in its set of effective privileges.
-
If the sensitivity label of label_p provides read only access to the existing sensitivity label (an upgrade), then the user must have the solaris.label.file.upgrade authorization. In addition, if the current zone is a labeled zone, then
it must have been assigned the privilege PRIV_FILE_UPGRADE_SL when the zone was configured.
-
If the sensitivity label of label_p does not provide access to the existing sensitivity label (a downgrade), then the calling user must have the solaris.label.file.downgrade authorization. In addition, if the current zone is a labeled
zone, then it must have been assigned the privilege PRIV_FILE_DOWNGRADE_SL when the zone was configured.
-
If the calling process is not in the global zone, and the user does not have the solaris.label.range authorization, then label_p must be within the user's label range and within the system accreditation range.
-
If the existing file is in use (not tranquil) it is not moved. This tranquility check does not cover race conditions nor remote file access.
Additional policy constraints can be implemented by customizing the shell script /etc/security/tsol/relabel. See the comments in this file.
Return Values
Upon successful completion, setflabel() returns 0. Otherwise it returns -1 and sets errno to indicate the error.
Errors
Attributes
See Also
Notes
The functionality described on this manual page is available only if the system is configured with Trusted Extensions.
SunOS 5.11 Last Revised 20 Jul 2007
Name
| Synopsis
| Description
| Return Values
| Errors
| Attributes
| See Also
| Notes
|