# OpenHarmony SELinux对外接å£è¯´æ˜Ž ## 概述 SELinux对外æä¾›æ›´æ–°æ–‡ä»¶æˆ–目录SELinuxæ ‡ç¾çš„æŽ¥å£ã€‚ ## 接å£è¯´æ˜Ž 所有接å£å‡ä¸ºNative C内部接å£ï¼Œä»…æä¾›åº•层能力,ä¸å¯¹åº”用开放。相关接å£åˆ—表如下: | 接å£å | 接å£è¯´æ˜Ž | 傿•°è¯´æ˜Ž | | --------- | ---------- | ---------- | | int **Restorecon**(const char *path); | **接å£åŠŸèƒ½**:更新å•ä¸ªæ–‡ä»¶æˆ–è€…ç›®å½•çš„æ ‡ç¾ï¼Œä¸é€’å½’é历å目录。<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | path表示ç»å¯¹è·¯å¾„。 | | int **RestoreconRecurse**(const char *path); | **接å£åŠŸèƒ½**:å•çº¿ç¨‹æ›´æ–°æ–‡ä»¶æˆ–è€…ç›®å½•çš„æ ‡ç¾ï¼Œé€’å½’é历更新åç›®å½•å’Œæ–‡ä»¶æ ‡ç¾ã€‚<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | path表示ç»å¯¹è·¯å¾„。 | | int **RestoreconRecurseParallel**(const char *path, unsigned int nthreads); | **接å£åŠŸèƒ½**ï¼šå¤šçº¿ç¨‹æ›´æ–°æ–‡ä»¶æˆ–è€…ç›®å½•çš„æ ‡ç¾ï¼Œé€’å½’é历更新åç›®å½•å’Œæ–‡ä»¶æ ‡ç¾ã€‚<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | path表示ç»å¯¹è·¯å¾„。<br/>nthreads表示线程个数。 | | int **RestoreconRecurseForce**(const char *path); | **接å£åŠŸèƒ½**:å•çº¿ç¨‹å¼ºåˆ¶æ›´æ–°æ–‡ä»¶æˆ–è€…ç›®å½•çš„æ ‡ç¾ï¼Œé€’å½’é历更新åç›®å½•å’Œæ–‡ä»¶æ ‡ç¾ã€‚<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | path表示ç»å¯¹è·¯å¾„。 | | int **RestoreconFromParentDir**(const char *path); | **接å£åŠŸèƒ½**ï¼šæ ¹æ®å½“å‰è·¯å¾„çš„çˆ¶ç›®å½•æ ‡ç¾ï¼Œå•线程更新当å‰è·¯å¾„çš„æ ‡ç¾ï¼Œé€’å½’é历更新整个目录。<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | path表示ç»å¯¹è·¯å¾„。 | ## 开呿¥éª¤ 1. 编译ä¾èµ–æ·»åŠ ```text external_deps += [ "selinux_adapter:librestorecon" ] ``` 2. 头文件ä¾èµ–æ·»åŠ ```cpp #include "policycoreutils.h" ``` 3. 接å£è°ƒç”¨ 以Restorecon接å£ä¸ºä¾‹ï¼š ```cpp // æ›´æ–°/dataè·¯å¾„æ ‡ç¾ï¼š int ret = Restorecon("/data"); ```